Как использовать пользовательских делегатов в Objective C

Это в основном наблюдение за элементом click в документе, отфильтрованным селектором атрибутов с помощью jQuery.

Это так

jQuery(document).on('click', '[data-toggle="collapse"]', doTheToggleMagic) 

Это означает, что каждый щелчок по документу реагирует, но только если источником события click был элемент с атрибутом data-toggle со значением Распад.

Итак, чтобы ответить на ваш вопрос в заголовке: Wordpress вообще не уведомляется об изменениях DOM. Потому что это не нужно. Он реагирует только, если пользователь взаимодействует.

51
задан piperchester 15 January 2014 в 04:34
поделиться

3 ответа

Для запуска можно смотреть на то, что Apple должна заявить о методах делегата. Документация предоставляет некоторую правильно написанную информацию о том, какая делегация - все об и объясняет и как использовать классы AppKit, которые определяют и поддерживают делегата и как кодировать поддержку делегата в один из Ваших собственных объектов.

Видят Общаться с Объектами

(Если Вы интересуетесь кодированием Вашей собственной поддержки делегата, пропустите вниз к разделу "Implementing a Delegate for a Custom Class".)

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

Hope, которая помогает Вам начать.

2
ответ дан C4 - Travis 7 November 2019 в 09:50
поделиться

Если у рассматриваемого объекта (ов) есть делегат , назначенный классу, который вы написали, скажем, контроллеру , тогда методы, определенные для этого методы делегата класса объекта должны быть реализованы назначенным классом. Это позволяет вам эффективно управлять поведением объекта без подкласса класса объекта, чтобы переопределить поведение, которое, вероятно, потребует определенного количества повторяющегося поведения. Это одна из самых чистых частей дизайна какао-сенсора.

Это то, что вы должны усвоить в первых парах вступлений и руководств по какао-сенсору. Как этот учебник от Какао - моя подруга . Фактически, они сделали объяснение делегата большим жирным заголовком.

2
ответ дан 7 November 2019 в 09:50
поделиться

Вы захотите объявить протокол делегата для своего класса. Пример протокола и интерфейса делегата для класса Foo может выглядеть следующим образом:

@class Foo;
@protocol FooDelegate <NSObject>
@optional
- (BOOL)foo:(Foo *)foo willDoSomethingAnimated:(BOOL)flag;
- (void)foo:(Foo *)foo didDoSomethingAnimated:(BOOL)flag;
@end

@interface Foo : NSObject {
     NSString *bar;
     id <FooDelegate> delegate;
}

@property (nonatomic, retain) NSString *bar;
@property (nonatomic, assign) id <FooDelegate> delegate;

- (void)someAction;

@end

Не забудьте синтезировать свои свойства в @implementation .

Что это за код действительно был объявлен протокол под названием FooDelegate; класс, соответствующий этому протоколу, будет объявлен как @interface SomeClass: SuperClass {} . Поскольку этот класс соответствует протоколу FooDelegate , теперь он может реализовать методы из FooDelegate (чтобы потребовать их реализации, используйте @required вместо @optional ). Последний шаг - создать экземпляр объекта Foo в классе, который соответствует FooDelegate , а для этого объекта Foo установить свойство делегата:

Foo *obj = [[Foo alloc] init];
[obj setDelegate:self];

Теперь ваш класс готов к приему сообщений от объектов Foo , делегаты которых настроены правильно.

128
ответ дан 7 November 2019 в 09:50
поделиться