Переопределите метод NSResponder
-mouseUp:
и проверьте предоставленное событие clickCount
.Если clickCount == 2
, то вы смотрите на двойной щелчок.Если это 1, то один клик.0, затем они ждали достаточно долго между мышкой вниз и мышкой вверх, чтобы система решила, что это не щелчок, а только отдельные события вниз и вверх.
- (void)mouseUp:(NSEvent *)event
{
NSInteger clickCount = [event clickCount];
if (2 == clickCount) [self handleDoubleClickEvent:event];
}
Это предполагает, что объект, обрабатывающий щелчок, является частью респондентацепь.Если нет, вам придется получить ваши события другим способом, например, создать подклассы NSApplication
или NSWindow
и переопределить -sendEvent:
, чтобы перехватить соответствующее событие, прежде чем оно пройдет дальше.