在不添加完成键的情况下关闭数字键盘式键盘
Posted
技术标签:
【中文标题】在不添加完成键的情况下关闭数字键盘式键盘【英文标题】:Dismiss a number pad-style keyboard without adding Done key 【发布时间】:2011-07-13 13:25:12 【问题描述】:数字键盘类型的键盘上没有 完成 按钮。我不想添加自定义 Done 按钮,但是如何关闭键盘?
【问题讨论】:
你想使用工具栏吗? 是的,但它也应该与 ios 3.1.3 兼容。 您想在触摸视图时关闭它吗?您可以将视图设置为 UIControl,并让小键盘关闭?.. 好吧.. 正常的方法是在键盘内使用UIToolBar
或完成按钮。
【参考方案1】:
您可以添加一个带有完成按钮的 UINavigationBar/UIToolBar(一个 UIBarButtonItem),然后将 textField/textView resignFirstResponder 设置为完成按钮的动作。
您可以将 UINavigationBar/UIToolBar 添加为 textField/textView 的 inputAccessoryView。
textField.inputAccessoryView = aNavBarWithDoneButton;
编辑:可用性 iOS(3.2 及更高版本)
【讨论】:
我可以用键盘添加或附加该工具栏吗? 是的。它是在 iOS 3.2 中引入的。它不适用于低版本。【参考方案2】:最简单的解决方案是在 UI 中的某处添加一个新按钮,该按钮在点击时调用 UITextField
(或其他)上的 resignFirstResponder
。在 iPhone 上将它放在工具栏中是有问题的,因为工具栏通常位于屏幕底部并且被键盘遮挡。
稍微复杂一点的解决方案是在所有其他可点击的 UI 元素后面放置一个不可见的 UIView
。您现有 UI 未处理的任何点击都将转到此新视图,该视图可以在您的文本字段上调用 resignFirstResponder
。
如果这些听起来都不吸引人,也许您应该扩展您的问题以包含您想要的行为类型。
【讨论】:
以上是关于在不添加完成键的情况下关闭数字键盘式键盘的主要内容,如果未能解决你的问题,请参考以下文章