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。
答案 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