获取没有文本字段/视图的键盘输入

Posted

技术标签:

【中文标题】获取没有文本字段/视图的键盘输入【英文标题】:Get keyboard input without a text field/view 【发布时间】:2009-05-07 04:39:50 【问题描述】:

我正在制作一个 iPhone 应用程序,它有我自己的自定义文本视图,可以显示多格式文本,我需要以某种方式与键盘交互。现在我正在使用隐藏的 UITextField 和委托方法 textField:shouldChangeCharactersInRange:replacementString: 来获取键入的字符。然而,这感觉很笨拙,我想知道是否可以在不使用 UITextField 或 UITextView 的情况下显示键盘并获得每次按键的通知?

谢谢,

凯尔

【问题讨论】:

【参考方案1】:

UIKeyInput protocol 的文档说明如下:

UIResponder 的一个子类可以采用该协议来实现简单的文本输入。当这个子类的实例是第一响应者时,系统键盘就会显示出来。

只有一小部分可用键盘和语言可用于采用此协议的类。

因此,这可能比隐藏的文本字段/视图更能满足您的需求。

【讨论】:

【参考方案2】:

在公共 API 中,您能做的最好的就是您所描述的。不幸的是,UIKeyboardUIKeyboardImpl 都是私有的。

【讨论】:

我同意。在没有找到更好的方法后,我实现了类似于凯尔的东西。 谢谢,我害怕那个。我想我会使用隐藏的文本字段。

以上是关于获取没有文本字段/视图的键盘输入的主要内容,如果未能解决你的问题,请参考以下文章

swift 键盘粘贴到文本字段使用输入附件视图

仅当键盘覆盖输入字段时才向上移动视图

单击按钮时输入附件视图

使用 Swift 使用键盘移动视图

iOS键盘监听以及获取键盘高度

SwiftUI:输入字段键盘动画导致选项卡视图中的其他视图动画