12

我目前正在为 iPhone 和 iPod touch 开发 OpenGL ES 游戏。

我想知道如何轻松拉起 UIKeyboard? 在不使用 UITextView 的 UITextField 的情况下,是否有官方记录的可能性来拉出 UIKeyboard?

4

5 回答 5

19

如果你继承 UIResponder,并声明 UIKeyInput 协议,当你成为 firstResponder 时,键盘会出现。

请参阅此处的 UIKeyInput 协议

让我感到困惑的一件事是您需要覆盖 canBecomeFirstResponder 消息。

于 2011-09-26T02:23:29.867 回答
14

这不是“官方”可能的 - 在遵守 Apple 的指导方针的同时,您根本无法访问 UIKeyboard 对象。

创建一个不可见的 UITextField,然后调用[textField becomeFirstResponder]就可以完成这项工作 - 您甚至可以先将 UITextField 子类化,然后重写委托方法textField:shouldChangeCharactersInRange:以将文本输入重定向到您想要的位置。

于 2009-09-07T14:57:33.373 回答
3

这确实是可能的。我自己为此苦苦挣扎。UIKeyInput 协议可用于在不使用 UITextField 或 UITextView 的情况下拉键盘。但是它仅适用于 iOS 3.2 及更高版本。这是一个教程

希望有帮助。

于 2012-02-19T05:01:21.100 回答
1

我通过将我的文本字段的框架放置在可见屏幕之外来显示没有任何可见 UITextField 的键盘:

#define TEXT_FRAME                 -50,-50,0,0

self.textField = [[UITextField alloc] initWithFrame:CGRectMake(TEXT_FRAME)];

当我设置“第一响应者”时,键盘变得可见,没有任何可见的输入区域:

// show the keyboard    
[self.textField becomeFirstResponder];

后来我放弃了这个想法。但是,我不知道它是否符合 Apple 准则。

于 2011-06-22T08:45:32.627 回答
0

我还没有尝试过,但http://www.cocoadev.com/index.pl?UIKeyboard显示了一些看起来应该可以工作的代码。

于 2009-09-03T22:22:08.927 回答