Как работают кнопки
Кнопки следуют шаблону разработки целевого действия. Кнопка является объектом пользовательского интерфейса, отправляющим сообщение действия в цель, когда щелкнувшийся. Для получения дополнительной информации об этом шаблоне разработки посмотрите Действие 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:
метод).