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