我在iOS 5上使用故事板,并且有一个简单的屏幕,上面有UITextField
。我想在用户点击“返回”时关闭键盘。我遵循了其他建议,例如让我的控制器实现UITextFieldDelegate
协议并实现textFieldShouldReturn:
,如下所示:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[questionField resignFirstResponder];
return YES;
}
但是我看到这个方法永远不会被调用。我已将故事板中我的视图控制器设置为我的自定义UIViewController
。
我还尝试了一种不同的实现,我在其中创建了一个名为IBAction
的{{1}},但奇怪的是我无法将dismissKeyboard
操作连接到我的Did Exit
。
有什么想法吗?
更新:所以问题似乎是我使用的是UITextView而不是UITextField。我想要一个大区域来输入文本。当我将输入字段更改为UITextField时,它可以正常工作。关于如何使用UITextView的任何想法?
答案 0 :(得分:0)
您应该将dismiss方法连接到文本字段的Did End Editing
操作。
答案 1 :(得分:0)
因此,为UITextView重新签名键盘的解决方案是实现shouldChangeTextInRange。
答案 2 :(得分:0)
如果您想在点击textview的返回键时关闭键盘,请使用此委托功能,
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}