当弹出窗口出现时如何解除已打开的键盘ios
在我的iOS项目中,我有一个包含各种文本字段的表单。 一些文本字段是由键盘编辑的,另一些是通过放置在弹出窗口上的选择器视图编辑的。
当我继续填写文本字段时,没有解除它,然后如果我点击popover文本字段键盘保持打开状态。
它同时出现在屏幕上的键盘和弹出窗口,我不想要。
通过在键盘通知方法中设置标志以及通过文本字段代表编辑的最后文本字段,我可以得到键盘是否打开。 并尝试过
[self endEditing:YES]; (因为它在表格单元格中)
[lastEditedTextField resignFirstResponder];
即使尝试通过我自己的键盘解雇通知(不知道它是否可能)
但没有任何工作。
如果出现弹出窗口,我该如何解除键盘(如果已经打开)。
提前致谢。
尝试实现textFieldShouldBeginEditing:
并在其中检查哪个文本字段是这样的。 如果它是其中一个应显示弹出窗口的字段,请首先调用[self.view endEditing:YES]
来隐藏键盘,然后显示弹出窗口并返回NO
。 这样,文本字段将不会采取第一响应者状态,并且键盘不会再次出现。 如果它是“正常”文本字段之一,则返回YES
。
你可以打电话给:
[self.view endEditing:YES];
但是,更好的解决方案可能会使用UIResponder
inputView
呈现选取器,因此它会自动替换键盘,并且不需要在两个不同的事物之间进行调解(并且用户不会在潜在屏幕的不同部分之间切换)。
上一篇: how to dismiss already opened keyboard when popover appears ios