Как работают кнопки

Кнопки следуют шаблону разработки целевого действия. Кнопка является объектом пользовательского интерфейса, отправляющим сообщение действия в цель, когда щелкнувшийся. Для получения дополнительной информации об этом шаблоне разработки посмотрите Действие Target в Понятиях в Программировании Objective C.

Большая часть работы кнопки обрабатывается NSButtonCell класс. NSButtonCell экземпляр отправляет свое сообщение действия в его цель один раз, если по ее представлению щелкают, и это получает событие mouseDown, но может также отправлять сообщение действия постоянно, пока мышь удерживается с курсором в ячейке кнопки. Ячейка кнопки может показать, что нажимается путем выделения несколькими способами — например, ограниченная ячейка кнопки может казаться продвинутой в экран, или изображение или заголовок могут измениться на альтернативную форму, в то время как нажимается ячейка кнопки.

NSButtonCell объект должен работать с экземпляром подкласса NSControl. При необходимости в одной кнопке, такой как кнопка, используйте NSButton объект, содержащий сингл NSButtonCell экземпляр. При необходимости в группе связанных кнопок, таких как группа переключателей или переключателей, используйте NSMatrix объект, содержащий несколько NSButtonCell экземпляры.

NSButton и NSMatrix оба обеспечивают представление управления. Однако, в то время как NSMatrix требует Вас к доступу NSButtonCell объекты непосредственно, большая часть NSButtonметоды являются «прикрытиями» для тождественно заявленных методов в NSButtonCell. (Другими словами, реализация NSButton метод вызывает соответствие NSButtonCell метод для Вас, позволяя Вам быть равнодушным к NSButtonCell существование объекта.) Единственное NSButtonCell методы, не имеющие покрытий, касаются шрифта, используемого для отображения ключевого эквивалента, и к определенным методам для выделения или показа NSButtonсостояние (они в последний раз обычно устанавливаются вместе с NSButton setButtonType: метод).