好吧 - 我正在UIToolbar
上为UIKeyboardTypeDecimalPad
实施一个- (void) viewDidLoad
{
UIToolbar *toolbar = [[UIToolbar alloc] init];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(donePicker:)];
UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[toolbar setItems:@[doneButton, spaceItem]];
self.textField.inputAccessoryView = toolbar;
}
-(void)donePicker:(id)sender
{
[self.textField resignFirstResponder];
}
文字字段。
问题是,不会调用将文本字段上的响应者重新签名的方法。我已经放入NSLogs来查看被调用的内容和未调用的内容,并调用设置(即UIToolbar初始化,添加按钮,将工具栏添加到文本字段等),但是方法从未被调用过按下“完成”按钮时。事实上,该按钮甚至看起来都不是“可点击的”。
[self.textField resignFirstResponder]
我试图同时使用[self.view endEditing:YES]
和{{1}},两者都没有结果。任何想法,伙计们?
答案 0 :(得分:0)
您只需要:
[yourtextfield setReturnKeyType:UIReturnKeyDone];
yourtextfield.delegate = self;
现在这个方法可以完成你的工作:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
享受:)