まず、本当にオーバーライドしたいかどうか、mouseDown:
またはオーバーライドmouseUp:
がより良いオプションであるかどうかを検討します。このクリックがボタンのクリックのようなものである場合、ユーザーがマウスを離す前にボタンの長方形からマウスをドラッグして「気が変わる」ことができるように、一般的にはオーバーライドmouseUp:
するよりもオーバーライドすることをお勧めします。mouseDown:
mouseUp:
NSEvent
locationInWindow
は、ベースウィンドウの座標でのイベントの場所を示します。その場所をビューのローカル座標系に変換するには、次のようにNSView
のconvertPoint:fromView:を使用できます。
- (void)mouseDown:(NSEvent *)event {
NSPoint eventLocation = [event locationInWindow];
NSPoint location = [self convertPoint:eventLocation fromView:nil];
// handle the logic of what to do given the point
}
詳細については、「 Cocoaイベント処理ガイド:イベントの場所の取得」を参照してください。