0

我是可可开发的菜鸟,我正在尝试制作一个非常基本的程序,该程序在标签中显示任何按下的键的值,然后在未按下键时清除。我到处搜索,我发现了类似的线程并通过神秘的开发人员库苦苦挣扎,但我似乎无法让它们工作。任何帮助都会很棒。记住我很新。

我真正需要的是知道在程序运行时哪些代码将返回按下的键的值。我大概可以从那里弄清楚。

谢谢

编辑-好的。我已经阅读了几次有关响应者链的 Apple 文档,我想我明白了这个概念。但是,我不明白为什么我的代码不起作用。这就是我所拥有的。我想我可以把它放在 App Delegate 的实现之下?我只有一个简单的默认应用程序。NSApplication 应该将 keyDown 事件传递给应用程序委托,并且由于它是第一响应者,它应该读取密钥并记录它,对吗?正如你所知道的,我可能还不完全理解事件是如何工作的。任何帮助都会很棒。

- (BOOL)acceptsFirstResponder {
    return YES;
}

- (void)keyDown:(NSEvent *)theEvent
{

    NSString *key = [theEvent characters];


    NSLog(@"keyDown [%@]", [theEvent characters]);
}
4

1 回答 1

1

无论是什么对象,第一响应者都需要实现-(void)keyDown:(NSEvent *)theEvent-(void)keyUp:(NSEvent *)theEvent. NSString您可以以with的形式从事件中获取字符-(NSString *)character。如果您的应用程序中只有一个窗口并将其控制器设置为实现上述方法,那么只要您的窗口中没有其他东西吃掉事件,它就应该可以工作。

于 2013-02-15T18:40:11.497 回答