自定义iPhone键盘

时间:2009-06-18 19:25:23

标签: iphone objective-c cocoa-touch

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

2 个答案:

答案 0 :(得分:13)

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

创建它:

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

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

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

答案 1 :(得分:6)

不,目前无法做到这一点。

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

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