Создание кнопки какао выглядит как нажато, программно - PullRequest
5 голосов
/ 08 июля 2010

У меня есть некоторые ключевые события, которые также соответствуют кнопкам. Какое свойство / метод мне нужно установить / вызвать, чтобы кнопка выглядела подавленной (изменение состояния?), Скажем, на полсекунды?

Ответы [ 2 ]

1 голос
/ 12 мая 2013

Я полагаю, что метод ячейки кнопки -setHighlighted: контролирует, выглядит ли кнопка нажатой или нет.Вам также может понадобиться вызвать -setNeedsDisplay: на кнопке после ее изменения, и возможно, что кнопка сама изменит выделенное состояние своей ячейки, поэтому я боюсь, что вам, возможно, придется поиграться, чтобы заставить это работать.

(Я должен признать, что я не совсем уверен в этом).

1 голос
/ 12 мая 2013

Я решил это, установив NSButton на тип «Push On Push Off», а затем использовал следующий код в моем обработчике событий ключа:

NSButton *button = [self.superview viewWithTag:event.keyCode];
if (button != nil && button.state == NSOffState) {
    [button performClick:event];
    [button performSelector:@selector(performClick:) withObject:event afterDelay:0.5];
}

При этом кнопка будет выделена так, как если бы пользователь нажал на нее, а затем снова нажмет на нее через полсекунды.

...