如何在iOS中点击UITextField时禁用键盘?

6
我目前正在开发一个原型,我希望在加载到iPad上之前先在桌面上进行用户测试。
我正在寻找解决方案,以便在点击文本字段后禁用键盘。这意味着在点击文本字段后,用户能够直接从Macbook键盘输入信息,而模拟器中自动显示的虚拟键盘将不会出现。我已经浏览了许多教程,但它们都是在用户输入后取消键盘;这不是我要找的。我应该如何隐藏键盘?
非常感谢!
3个回答

9

使用这个:

UIView *dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];    
myTextField.inputView = dummyView; // Hide keyboard, but show blinking cursor

这适用于UITextField和UITextView,它们需要设置为可编辑状态。

你做了什么:
您创建了一个width=hight=0的虚拟视图,并将其分配为textField的输入视图。

它是如何工作的: 现在,视图控制器显示DummyView作为UITextFieldinputView,而不是默认的键盘。由于DummyView的Width=height=0,因此您不会在屏幕上看到任何东西:)


1
@Prince Agrawal,它在iPad Air2上无法正常工作。它会在屏幕底部显示键盘工具栏。你能帮忙解决一下吗? - hardik hadwani
@hardikhadwani 这不是特定于设备的。您所说的键盘工具栏是什么意思? - Prince Agrawal
如果我在iPad Air2 iOS 9上运行应用程序,它无法正常工作。它显示系统复制、撤消和重做工具栏。 - hardik hadwani
这会创建一个僵尸对象,并在视图被释放时导致我的应用程序崩溃。所以......谢谢,但我不需要。 - CommaToast
非常棒!!谢谢.. :) - Kisoth Srinathan

2

这里有另一个答案,我发现它使用相同的技巧,但是还附加了一些支持代码片段来隐藏闪烁的光标。

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    return NO;  // Hides both keyboard and blinking cursor.
}

我需要为一个数量文本字段完成这项任务,其中我使用UIStepper视图增加/减少数量。因此,我需要键盘始终隐藏。


1
这将把你的textField的inputView设置为一个基本上没有框架的空UIView
self.theTextField.inputView = [[UIView alloc] initWithFrame:CGRectZero];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接