textFieldShouldReturn没有响应我在UITableViewCell中的UITextField

时间:2014-05-09 13:41:35

标签: ios objective-c uitableview

UITextField中的UITableViewCell UITableView位于我UIViewController的{​​{1}}中。 TextFields可见,我可以点击它们(键盘显示),但方法textFieldShouldReturn不起作用。 我像这样委托:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
VVUserInformationCell *cell = [tableView dequeueReusableCellWithIdentifier:cellUserIdentifier forIndexPath:indexPath];

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
cell.userData.delegate = self;

[cell.typeLabel setText: array[indexPath.row][0]];
[cell.userData setTextAlignment: NSTextAlignmentRight];

return cell;

}

-(BOOL)textfieldShouldReturn:(UITextField*)textField{
NSError* e = nil;
NSLog(@"HEJ!");

switch (textField.tag) {
    case 0:
        arrayStr = [textField.text componentsSeparatedByString:@" "];
        self.currentAttendee.firstName = arrayStr[0];
        self.currentAttendee.lastName = arrayStr[1];
        break;

    case 1:
        self.currentAttendee.username = textField.text;
        break;

    case 2:
        self.currentAttendee.email = textField.text;
        break;

    case 3:
        arrayStr = [textField.text componentsSeparatedByString:@" "];
        self.currentAttendee.firstName = arrayStr[0];
        self.currentAttendee.lastName = arrayStr[1];
        break;

    case 4:
        self.currentAttendee.username = textField.text;
        break;

    case 5:
        self.currentAttendee.email = textField.text;
        break;

    default:
        break;
}
[textField resignFirstResponder];
return YES;

[self.currentAttendee.managedObjectContext save:&e];
NSAssert(!e,@"Error saving to API: %@",e);

}

我在textfield里面做了刹车点应该返回,但它没有去那里。

编辑:userData是我的TextField。

2 个答案:

答案 0 :(得分:2)

您的方法是:

- (BOOL)textfieldShouldReturn:(UITextField *)textField;

正确的方法是:

- (BOOL)textFieldShouldReturn:(UITextField *)textField;

他们的方式不同;)

答案 1 :(得分:0)

您的UITextField在哪里?

我没有看到你在cellForRowAtIndexPath:

的任何地方设置它

如果你拥有它并且它是单元格中的属性,则需要将其设置为UITableViewController

cell.textField.delegate = self;

现在,您的视图控制器将响应textfieldShouldReturn:

另外,请确保您的UITableViewController符合UITextFieldDelegate协议:

@interface MyTableViewController : UITableViewController <UITextFieldDelegate>

// ...

@end