即使在userInteractionEnabled = NO的情况下,也可以在firstResponder上显示UITextField键盘

我有一个UITextField是第一响应者。 我想在进入视图时显示键盘,但我想这样做,用户将无法编辑它,光标也会一直隐藏。

当你点击一个键盘字母时,它将被写入UITextField,但是用户将不能在那里编辑任何东西,甚至不能复制。

谢谢!

好吧,根据我的评论,我的解决scheme是有一个代理UITextFieldhidden属性设置为YES 。 我所做的就是将隐藏文本字段添加到视图,并调用becomeFirstResponder 。 用户不知道这个文本字段是否存在。 在文本字段的委托callback中,我将用户input的文本添加到UITextView (尽pipe您可以将文本添加到所需的任何内容中,例如像在您的问题中那样的UITextField )。 我closures了可见文本视图的userInteractionEnabled 。 这会产生你想要的效果。

我创build了一个示例项目,我上传到Github。 (如果您不熟悉,只需单击zipbutton下载,解压缩,然后打开.xcodeproj文件)。 https://github.com/MaxGabriel/HiddenTextField

我在我的viewController有一个UISearchBar属性。 我是这样做的:

 - (void)viewWillAppear:(BOOL)animated { [self.searchBar becomeFirstResponder]; } 

这应该对于UITextField是一样的。

至于禁用编辑,使用:

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ return NO; } 

你应该设置你的viewController是UITextField的委托。

编辑答案:试试这个:

 1. [txtField becomeFirstResponder]; 2. txtField.enabled = NO; 3. when some press on keyboard, then txtField.enabled = YES; 

看看这个: http : //www.youtube.com/watch?v=cKV5csbueHA