我正在使用 Xcode5 为 MacOSX 开发一个应用程序
我的初始窗口是基于 NSObjectController 的,我正在尝试使用我在 NSWindowControllers 上使用的常用方法来捕获键盘事件
-(void)keyDown:(NSEvent *)theEvent{}
但这并没有捕捉到任何东西......还有其他方法可以完成这样的任务吗????
提前感谢您的支持
我正在使用 Xcode5 为 MacOSX 开发一个应用程序
我的初始窗口是基于 NSObjectController 的,我正在尝试使用我在 NSWindowControllers 上使用的常用方法来捕获键盘事件
-(void)keyDown:(NSEvent *)theEvent{}
但这并没有捕捉到任何东西......还有其他方法可以完成这样的任务吗????
提前感谢您的支持
还有另一种方法可以让它在 NSObjectController 上工作......
例如,这会捕获左键和右键....
@interface MyNSObjectController(){
id eventMonitor;
}
@end
@implementation MyNSObjectController
- (void) awakeFromNib{
[self captureKeyDownEvents];
}
-(void)captureKeyDownEvents{
NSEvent *(^handler)(NSEvent*) = ^(NSEvent *theEvent) {
NSObjectController *targetWindow = self;
if (targetWindow != self) {
return theEvent;
}
NSEvent *result = theEvent;
if (theEvent.keyCode == 123) { //left arrow
NSLog(@"you just pressed left key");
result = nil;
}
if (theEvent.keyCode == 124) { //right arrow
NSLog(@"you just pressed right key");
result = nil;
}
return result;
};
eventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask handler:handler];
}
-(void)dealloc{
[NSEvent removeMonitor:eventMonitor];
}
@end