Frage

Ich möchte den Benutzernamen des Benutzers in einem UITableView bearbeiten. Ich habe eine UITextField zum UITableViewCell und dies scheint sehr gut zu funktionieren. Aber wenn der Benutzer die Zelle berührt (auch außerhalb des Textfeldes), er erwartet, zu bearbeiten.

Wie kann ich das Textfeld programmatisch wählen?

Der Code würde in etwa so aussehen:

- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
userName.selected = TRUE;
}
War es hilfreich?

Lösung

- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
   UITableViewCell *cellSelected = [tableView cellForRowAtIndexPath: indexPath];
   UITextField *textField = [[cellSelected.contentView subviews] objectAtIndex: 0];
   [textField becomeFirstResponder];

   [tableView deselectRowAtIndexPath: indexPath animated: NO];

}

Dies setzt voraus, dass Sie keinen schnelleren Weg müssen wissen, welche UITextField-Objekt in welcher Zelle ist, und dass Sie sicher sind, dass die UITextField wird die erste subview sein.

Sie möchten auch vielleicht für einen Scheck setzen [Textfield isFirstResponder] - keinen Sinn, in den firstResponder machen, wenn es ohnehin schon ist. Dies kann jedoch nicht notwendig sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top