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