2015-10-23 3 views
1

У меня есть пользовательский NSView в NSMenuItem (прикрепленный к MenuBar), который отвечает на событие mouseDown. Но мне нужно дважды щелкнуть на пользовательском представлении для вызываемой функции mouseDown, потому что пользовательский вид должен быть первым ответчиком. И когда я переопределяю метод acceptsFirstResponder в моем контроллере CustomView, как указано в Руководстве по обработке событий Cocoa, он не работает. Каково решение? Это выполнимо?Как создать пользовательский NSView в NSMenuItem startFirstResponder?

ответ

2

Переопределить метод NSViewacceptsFirstMouse:, чтобы вернуть YES для события. Если вы хотите принять первый щелчок мышью для некоторых типов событий, вы можете это сделать, изучив переданный параметр события. Если в этом случае ничего особенного в случае NSMenuItem, это должно быть то, что вы хотите; это стандартный механизм какао для этого. Обратите внимание, что этот метод не совпадает с методом acceptsFirstResponder, который вы попробовали. Подробнее см. Документ Apple.

+0

Он работал как шарм! Спасибо Большое! –

+0

Ничего, я не знал этого –

1

Для справки я только добавил к моему обычаю смотреть следующее:

- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent { 
    return YES; 
}  
Смежные вопросы