iphone - 自定义 iPhone 键盘

标签 iphone objective-c cocoa-touch

有没有办法修改或制作您自己的 iPhone 键盘,以便您可以输入不受支持的语言?

最佳答案

可以创建自己的键盘,但实际使用起来比较困难。

创建它:

  1. 创建键盘 View 。您可以使用任何您想要的 subview 。最有用的方法可能是创建一个 UIView 子类。
  2. 安排任何 UIResponder 的 inputView 返回您的键盘 View 实例属性(property)。对于 UITextView 和 UITextField,这就像分配属性一样简单;对于其他类,您可能必须子类化或调配访问器,因为该属性默认声明为只读。

有关这方面的更多详细信息,请参阅 the documentation .

不幸的是,实际上使用这个自定义键盘更加困难。从 iOS 4.3 开始,UITextField 和 UITextView 都不符合 UITextInput protocol ,这对于这个目的来说是理想的。对于 UITextView 您应该能够使用该类提供的方法使其工作,但是由于 UITextField 没有提供任何方法来查找当前选择或光标位置,您将无法使用 publicly 创建一个功能齐全的键盘-记录的方法(追加和从末尾删除是可能的,甚至是 inserting at the current position by manipulating the clipboard ,但是像标准键盘上那样的“删除前一个字符”按钮将被证明是不可能的)。

从 iOS 5.0 开始,UITextField 和 UITextView 终于实现了 UITextInput 协议(protocol)。现在在光标位置插入和删除文本应该是一件简单的事情。

关于iphone - 自定义 iPhone 键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014705/

相关文章:

iphone - iOS 6.0 有没有办法关闭音频输入的自动低频过滤功能?

ios - 贝塞尔路径在 View 中不可见

ios - 发送带有图像的消息

iphone - UIRemoteNotificationType 无效转换

ios - 如何在 NSFetchedResultsController 中构建小节

iphone - 更改 iOS 应用的产品名称后出现代码签名错误

iphone - 核心数据错误访问 insertNewObjectForEntityForName 问题

ios - 为什么在UIView上画线需要背景色?

c# - 如何在 Windows 上使用 .Net 构建 iphone 应用程序?

objective-c - 为什么这个没有保存?