2012-02-25 2 views
0

С моей точки зрения делегирующий класс является тем, который всегда наследуется от NSResponder, а класс delegate доступен только для классов, которые наследуются от NSResponder. NSMenu наследует напрямую от NSObject, так почему же я вижу deletgate в outlets? Или я неправильно понял параметры, которые вы видите после нажатия Ctrl-объекта на объект в Interface Builder? Я вижу Outlets, Referencing outlets, Received Actions, что это значит тогда? Я использую Xcode 4 (10.7.3), если это имеет значение.член делегата в NSMenu

ответ

0

Я понятия не имею, где вы это видели, но полностью и совершенно неверно. Делегирование - это всего лишь шаблон, нет ограничений на тип объектов, которые могут реализовать делегат.

На самом деле вам предлагается использовать шаблон делегирования в ваших собственных классах.

NSMenu заявляет свое имущество delegate как розетку в заголовке, поэтому вы видите его в интерфейсе Builder. Вы можете сделать то же самое в своем коде следующим образом:

@interface YourObject : NSObject {} 
@property (weak) IBOutlet id delegate; 
@end 

В Interface Builder, Outlets относится к розеткам, которые определены в заголовке вашего класса, и что вы можете подключиться к другим объектам. Referencing Outlets и Referencing Actions Соединения от другие объекты до ваш объект.

+0

Теперь, возвращаясь к документации о ящиках, я понял, что был неправ, я не читал в нем «часто» слово. 'Объект делегирования часто является ответчиком объектно-то есть, объект наследования от NSResponder в AppKit или UIResponder в UIKit-, что реагирует на события пользователя. Делегат - это объект , который является делегированным управлением пользовательским интерфейсом для этого события или по крайней мере просят интерпретировать событие в конкретном приложении. ' – PnotNP

Смежные вопросы