NSWindowでマウスイベントを受け取る
2011/01/13
2011/01/15
cocoa
NSWindow
objective-c
osx
NSWindowでマウスイベントを受け取ります。
NSWindowを継承して、NSResponderに定義してあるのを適当に実装。
とれないイベントがあるんだよね...
どうとるんだろう。
追記:mouseMovedは、setAcceptsMouseMovedEventsにYESを設定でOK。
- Responding to Mouse Events
- Cocoa Event-Handling Guide: Handling Mouse Events
- NSWindow:acceptsMouseMovedEvents
#import "MyWindow.h"
@implementation MyWindow
- (void) mouseDown:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) mouseDragged:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) mouseUp:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
/**
このイベントはNSWindowではどうとるのだろう?
mouseEntered,mouseExited
*/
- (void) mouseMoved:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) mouseEntered:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) mouseExited:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) rightMouseDown:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) rightMouseDragged:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) rightMouseUp:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) otherMouseDown:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) otherMouseDragged:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) otherMouseUp:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
@end
@implementation MyWindow
- (void) mouseDown:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) mouseDragged:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) mouseUp:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
/**
このイベントはNSWindowではどうとるのだろう?
mouseEntered,mouseExited
*/
- (void) mouseMoved:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) mouseEntered:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) mouseExited:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) rightMouseDown:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) rightMouseDragged:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) rightMouseUp:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) otherMouseDown:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) otherMouseDragged:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void) otherMouseUp:(NSEvent *)event {
NSLog(@"%s", __PRETTY_FUNCTION__);
}
@end
参考
マウスイベントを処理するCocoaアプリケーションにしてみる - ザリガニが見ていた...。
: