对重要事件做出反应

时间:2012-08-09 11:32:16

标签: objective-c macos cocoa

我想这样做,如果用户按下键盘上的“返回”键,应用程序必须做一些事情。我尝试以下方法:

- (void)keyDown: (NSEvent *) event {
        if ([event keyCode] == 36) {  
            [self doSmthFunction];
        }
}

但是当我按下“返回”时,我只听到哔声。


完整代码

KeyEventController.m

#import "KeyEventController.h"
#include "myCustomClass.h"

@implementation KeyEventController
- (void)keyDown: (NSEvent *) event {
        if ([event keyCode] == 36) {
                NSLog(@"log");
        }
}
@end

KeyEventController.h:

#import <Cocoa/Cocoa.h>

@interface KeyEventController : NSResponder 

@end

1 个答案:

答案 0 :(得分:1)

您可能必须覆盖acceptsFirstResponder,并返回YES。此外,您可能需要在视图中(或者您已经为子类化的任何内容)单击以使其不发出蜂鸣声。我已经对此进行了测试,有时,似乎有必要做这些事情,有时候不这样做。