在不添加完成键的情况下关闭数字键盘式键盘

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

如果这些听起来都不吸引人,也许您应该扩展您的问题以包含您想要的行为类型。

【讨论】:

以上是关于在不添加完成键的情况下关闭数字键盘式键盘的主要内容,如果未能解决你的问题,请参考以下文章

如何在不失去对 React Native 的关注的情况下关闭键盘。(至少显示光标)

在没有触摸手势识别器的情况下关闭键盘

linux下关闭键盘的重复击键

关闭 dialogFragment 时键盘未关闭

如何在不按 Enter C# WPF 的情况下检测我的键盘

如何在不单击后退按钮的情况下隐藏键盘[重复]