Как определить класс, который отправляет действие, как NSButton? - PullRequest
1 голос
/ 06 сентября 2010

В Какао, как вы определяете класс, который отправляет действие?Я хочу иметь возможность связать действие с селектором другого объекта в IB в стиле NSButton.Я бы предпочел не создавать подкласс NSControl, если это возможно.

1 Ответ

2 голосов
/ 06 сентября 2010
  1. Дайте ему свойство (неофициальное - хорошо), держащее id, для цели.Я не уверен, должно ли это сохранить или нет;Я бы сказал нет, поскольку целью обычно будет контроллер, которому принадлежит окно, которое (косвенно) владеет представлением.
  2. Присвойте ему свойство (неофициальное в порядке), содержащее SEL, для действия.
  3. Ответьте на mouseUp: и keyDown: (проверяя, что рассматриваемый ключ является пробелом, или возвратите, или введите), отправив себе сообщение accessibilityPerformAction:, передав NSAccessibilityPressAction.
  4. Ответьте на сообщение accessibilityPerformAction: , отправив сообщение о действии вашей цели (NSAccessibilityPressAction) или позвонив на номер super (другой), как описано в документации к этому методу.

Вы должны также реализовать оставшуюся часть протокола NSAccessibility , пока вы на нем.Протестируйте эту работу с помощью Инспектора специальных возможностей и VoiceOver.

...