如何在全屏OpenGL ES应用程序上显示iPhone / iPad键盘

我正在开发一个应用程序,在某些时候需要键盘input。 我的应用程序使用OpenGL ES进行显示,我有我自己的graphics框架,可以显示文本字段,并知道如何pipe理光标和呈现文本。 此代码在其他具有物理键盘(如Windows和OS X)的平台上工作良好。

所有我需要得到我的应用程序的iOS版本的工作是能够以编程方式上下键盘,并从用户的关键按下事件到我的视图,以便我可以将它们路由到我自己的框架事件系统。

我看到了这个问题 ,但是我不能让解决scheme在那里工作。 不知道这是因为我做错了什么,或者因为它不适用于当前的iOS版本。

编辑:这将是有帮助的指向一个工作的应用程序与源代码,以编程方式创build任何UI元素,并显示在GL ES屏幕的顶部。 如果我理解了这个部分,我想我可以把其余部分弄清楚。

我不能指出你在一个工作的例子,但我相信你在找什么在这里http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKeyInput_Protocol/Reference/Reference.html #// apple_ref / OCC / INTF / UIKeyInput

基本的想法是,您在UIResponder对象(如UIView上实现UIKeyInput协议。 使视图第一个响应者和键盘应该会自动出现。 UIKeyInput协议为您提供了简单的反馈,用于在用户按下键盘上的button时插入字符和删除字符。

这不是工作代码,但它看起来像这样:

 @interface MyKeyboardView : UIView <UIKeyInput> @end @implementation MyKeyboardView - (void)insertText:(NSString *)text { // Do something with the typed character } - (void)deleteBackward { // Handle the delete key } - (BOOL)hasText { // Return whether there's any text present return YES; } - (BOOL)canBecomeFirstResponder { return YES; } @end 

当视图被locking时,使其成为显示键盘的第一响应者

 [myView becomeFirstResponder]; 

或者退出第一响应者来解除键盘

 [myView resignFirstResponder]; 

编辑:确保您的视图附加到视图层次结构,否则这可能不会做任何事情。