我正在开发一个需要键盘输入的应用程序。我的应用程序使用OpenGL ES进行显示,我有自己的图形框架,可以显示文本字段,并且知道如何管理光标和渲染文本。这段代码在其他有物理键盘的平台上工作得很好,比如Windows和OS。
要让我的应用程序的iOS版本正常工作,我只需要能够以编程方式上下移动键盘,还可以将用户的按键事件放到我的视图中,这样我就可以将它们路由到框架自己的事件系统中。
我看到了this question,但我不能让那里描述的解决方案工作。不确定是因为我做错了什么,还是因为它不能在当前的iOS版本上工作。
编辑:这将有助于指向一个工作的应用程序与源代码,以编程方式创建任何UI元素,并将其显示在GL ES屏幕上。如果我理解了这部分,我想我可以弄清楚剩下的部分。
发布于 2011-09-01 06:58:46
我不能给你一个工作的例子,但我相信你要找的就在这里,http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKeyInput_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UIKeyInput
基本思想是在UIResponder
对象(如UIView
)上实现UIKeyInput
协议。使视图成为firstResponder,键盘将自动出现。当用户按下键盘上的按钮时,UIKeyInput
协议为您提供插入字符和删除字符的简单反馈。
这不是正常工作的代码,但它看起来像这样:
@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
连接视图后,使其成为显示键盘的第一个响应者
[myView becomeFirstResponder];
或辞去first responder以解雇键盘
[myView resignFirstResponder];
编辑:确保您的视图附加到视图层次结构,否则这可能不会做任何事情。
https://stackoverflow.com/questions/7253477
复制相似问题