当我按下键盘上的完成按钮时,它会自动将键盘移开。我如何阻止它这样做?
答案 0 :(得分:2)
确保将视图控制器设置为UITextField
的委托,然后实现shouldEndEditing:方法。只需返回NO
即可保持文本字段处于活动状态,并将键盘保持在屏幕上。
当然,这可能不是最佳方法,但在阅读上述文档后,您应该能够找到正确的回调并适当地控制程序的流程。
答案 1 :(得分:2)
您的控制器需要实施textFieldShouldReturn:
(reference)的UITextFieldDelegate
方法:
确保您的视图控制器已设置为文本字段的委托,可以通过Interface Builder或代码:
- (void) viewDidLoad
{
self.someTextField.delegate = self;
}
然后,在视图控制器中,您需要实现textFieldShouldReturn:
方法:
- (BOOL) textFieldShouldReturn:(UITextField *)textField
{
return NO;
}
您指定的是在键盘上按下return(done)键时不会发生任何操作。正如其他人所提到的,奇怪的是,这正是默认行为。这意味着1)您在文本字段上调用resignFirstResponder
,或者2)此文本字段位于UIWebView
内,并祝您好运改变该行为。
答案 2 :(得分:1)
我有类似的情况。当[myTextField resignResponder]发生时,键盘消失了,但我只是想让键盘出现在屏幕上。
我刚刚在屏幕外创建了一个额外的UITextField实例,比如dummyTextField,它的框架是CGRectMake(-10,-10,5,5)。
在[myTextField resignResponder]之后,我立即调用[dummyTextField becomeFirstResponder]。因此键盘仍处于活动状态,而用户无法看到dummyTextField。
我相信有更好的方法。但我这样做了,它运作良好。