2013-08-07 1 views
0

В настоящее время у меня есть IBAction для NSButton, а NSButton также имеет ключевой эквивалент. Я хотел бы знать, если есть способ в моем IBAction функции «удар»Как отличить щелчок мышью от нажатия клавиши для NSButton в IBAction

- (IBAction)strike:(id)sender 

, что может мне сказать, является ли это действие вызвано кнопкой мыши по кнопке или нажатие клавиши эквивалента кнопки ?

+0

NSEvent. Вы хотите NSEvent. Вы можете проверить событие, чтобы узнать, как оно было вызвано. Но IBAction передает идентификатор отправителю по умолчанию. Это хорошо для проверки того, что действие всегда срабатывает с помощью кнопки или меню или другого объекта. Что вы пытаетесь достичь? – uchuugaka

+0

Нет способа получить NSEvent от отправителя? Я в основном пишу небольшую виртуальную инструментальную программу, и я хочу, чтобы ключ (NSButton) загорался по-разному в зависимости от того, вызван ли он нажатием или нажатием клавиши. – wc373

+0

Я предполагаю, что отправитель и NSEvent - это совершенно разные вещи ... Возможно, я попытаюсь подумать о другом способе достижения такого же эффекта. – wc373

ответ

1

получить текущее событие, используя -currentEvent и используя, если проверка петелька для подсчета кликов мыши

if([theEvent clickCount]>=1) 
{ 
mouse clicked; 
} 
else 
{ 
button pressed; 
} 
Смежные вопросы