我是可可开发的菜鸟,我正在尝试创建一个非常基本的程序,显示标签中任何按下的键的值,然后在键未按下时清除。我到处搜索过,我发现了类似的线程,并且在这个神秘的开发者库中被淹没,但我似乎无法让它们工作。任何帮助都会很棒。记住我很新。
我真正需要的是知道在程序运行时哪些代码将返回按下的键的值。我可以从那里弄明白。
由于
编辑 - 好。我已经阅读了响应者链上的Apple文档几次,我想我得到了这个概念。但是,我不明白为什么我的代码不起作用。这就是我所拥有的。我想我可以把它放在App Delegate的实现下吗?我只有一个简单的默认应用程序。 NSApplication应该将keyDown事件传递给app delegate,因为它是第一个响应者,它应该读取密钥并记录它,对吧?你可以告诉我,我可能还不完全了解事件是如何工作的。任何帮助都会很棒。
- (BOOL)acceptsFirstResponder {
return YES;
}
- (void)keyDown:(NSEvent *)theEvent
{
NSString *key = [theEvent characters];
NSLog(@"keyDown [%@]", [theEvent characters]);
}
答案 0 :(得分:1)
无论什么对象是第一响应者需要实现-(void)keyDown:(NSEvent *)theEvent
和-(void)keyUp:(NSEvent *)theEvent
。您可以使用NSString
-(NSString *)character
的形式获取活动中的字符。如果您的应用程序中只有一个窗口并设置其控制器以实现上述方法,只要您的窗口中没有其他东西来吃事件,它就应该有效。