Нажмите программную кнопку NSPushButton с помощью «анимации» - PullRequest
4 голосов
/ 12 января 2012

Я только что столкнулся с проблемой, которую я уже знаю из других языков программирования / каркасов .... Всякий раз, когда пользователь нажимает определенную кнопку на клавиатуре, он запускает то же действие, что и при нажатии определенной кнопки в графическом интерфейсе. (Некоторые парни называют эти «ярлыки»; D)

Чтобы дать пользователю оптическую обратную связь, я бы хотел "нажать" кнопку программно, а не вызывать те же функции, которые вызываются при нажатии кнопки.

Если я установлю кнопку как эквивалент ключа в IB, она будет выглядеть именно так, как я хочу. Здесь нельзя сделать это, так как ярлык должен быть просто включен, если правильные текстовые поля имеют фокус.

Не удалось найти метод в NSButton или аналогичный, который звучал бы правильно. Я уверен, что вы, ребята, можете дать мне какое-то направление!

Лучшее и заранее спасибо

1 Ответ

22 голосов
/ 12 января 2012

Вы можете просто отправить performClick: на кнопку. Он подсветит себя, отправит свое действие своей цели, а затем отключит подсветку.

[self.someButton performClick:self];

Если вы действительно хотите просто выделить и отменить подсветку кнопки вручную, вы можете использовать метод highlight:.

[self.someButton highlight:YES]; // button appears pressed
[self.someButton highlight:NO]; // button appears unpressed
...