2017-04-03 63 views
0

在风景方向的iPhone上,右下角有一个按钮可导致键盘退出。我真的不希望这个按钮在那里,因为我已经有一个完成按钮,并且用户应该只能通过按这个完成按钮(必须在那里来解决纵向方向)来停止编辑文本框。我想知道是否有一种方法来删除键盘解雇按钮,或者如果没有,我会很感激任何UITextField委托行为的建议,区分正确解雇(完成按钮按下)和不当(第一响应可能会辞职即使完成按钮没有按下,例如由于上述问题按钮或视图控制器解雇)。UITextField iOS:如何处理解雇键盘按钮?

+1

如何解除键盘使用键盘解雇按钮被认为是“不当”?只要对适当的委托方法做出反应。你自己的“完成”按钮应该做的是辞退第一个响应者。然后你的代表将被调用。 – rmaddy

+0

防止用户执行某些他们习惯于能够做的事情是一种惹恼他们的绝对方式。你能否预测每个用户的习惯如此完美,以至于你可以断言解雇按钮应该真的被删除? – BallpointBen

+0

我想我认为这是一个非常合理的问题,但从前两个反应,我怀疑我正在考虑这个错误。 我在考虑的问题是两个按钮的冗余(关闭和完成),因为在我的简单设置中,用户只需将文本放入一堆文本字段中,然后点击提交按钮即可将结果发送出去。为此,关闭键盘和完成敲击具有相同的功能:他们辞去第一个响应者,并将用户迄今为止写入的文本留在现场。 –

回答

0

你可以做的一件事是声明一个变量,如isDismissedProperly,并启动它到false。然后订阅键盘显示和隐藏通知。 UIKeyboardDidShowNotificationUIKeyboardDidHideNotification。在完成按钮的目标方法中(如问题所述),将isDismissedProperly更改为true。而在keyboardDidHide方法中,您可以检查isDismissedProperly是否为真或假。

如果是这样,那么用户按下完成按钮即可解除键盘锁定。

希望它有帮助!