自定义iPhone键盘

hek*_*ran 11 iphone cocoa-touch objective-c

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

Ano*_*mie 13

可以创建自己的键盘,但实际使用它更加困难.

要创建它:

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

有关详细信息,请参阅文档.

不幸的是,实际使用这种自定义键盘更加困难.从iOS 4.3开始,UITextField和UITextView都不符合UITextInput协议,这对于此目的来说是理想的.对于UITextView,您应该能够使用类提供的方法使其工作,但由于UITextField没有提供任何方法来查找当前选择或光标位置,因此您将无法公开创建全功能键盘-documented方法(追加和从头删除是可能的,甚至通过操纵剪贴板插入当前位置,但标准键盘上的"删除前一个字符"按钮将被证明是不可能的).

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


Jab*_*Jab 6

不,目前没有办法做到这一点.

通过添加SubViews添加自己的按钮有一些hacky方法.但它不受支持,可能随时失败.

如果你决定创建自己的,你可能需要滚动自己的文本框控件和任何其他需要键盘的控件.换句话说,不是一个理想的选择.