NSAppleEventManager
Обеспечивает механизм для регистрации подпрограмм обработчика для определенных типов событий Apple и диспетчеризации событий к тем обработчикам.
Какао предоставляет встроенную scriptability поддержку, использующую scriptability информацию, предоставленную приложением для автоматического преобразования событий Apple в объекты команды сценария, выполняющие желаемую работу. Однако некоторые приложения могут хотеть выполнить более основную обработку событий Apple, в которой приложение регистрирует обработчики для событий Apple, которые это может обработать, затем обращается к менеджеру по корпоративным мероприятиям Apple с просьбой диспетчеризировать полученные события Apple надлежащему обработчику. NSAppleEventManager поддержки эти механизмы путем обеспечения методов, чтобы зарегистрироваться и демонтировать обработчики и диспетчеризировать события Apple надлежащему обработчику, если Вы существуете. Для соответствующей информации посмотрите Как Дескриптор Приложений Какао События Apple.
Каждое приложение имеет самое большее один экземпляр NSAppleEventManager. Для получения ссылки на него Вы вызываете метод класса sharedAppleEventManager, который создает экземпляр, если он уже не существует.
Для получения информации о менеджере по корпоративным мероприятиям Apple посмотрите Ссылку менеджера по корпоративным мероприятиям Apple и Руководство по программированию Событий Apple.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает единственный экземпляр
NSAppleEventManager, создание его сначала, если это не существует.Объявление
Swift
class func sharedAppleEventManager() -> NSAppleEventManagerObjective C
+ (NSAppleEventManager *)sharedAppleEventManagerОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Если обработчик событий Apple был зарегистрирован для события, указанного
eventClassиeventID, удаляет его.Объявление
Swift
func removeEventHandlerForEventClass(_eventClass: AEEventClass, andEventIDeventID: AEEventID)Objective C
- (void)removeEventHandlerForEventClass:(AEEventClass)eventClassandEventID:(AEEventID)eventIDОбсуждение
Иначе ничего не делает.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
setEventHandler (_: andSelector:forEventClass:andEventID:) - setEventHandler:andSelector:forEventClass:andEventID:Регистрирует обработчик событий Apple, указанный
handlerдля события, указанногоeventClassиeventID.Объявление
Swift
func setEventHandler(_handler: AnyObject, andSelectorhandleEventSelector: Selector, forEventClasseventClass: AEEventClass, andEventIDeventID: AEEventID)Objective C
- (void)setEventHandler:(id)handlerandSelector:(SEL)handleEventSelectorforEventClass:(AEEventClass)eventClassandEventID:(AEEventID)eventIDОбсуждение
Если обработчик событий уже регистрируется для указанного класса событий и идентификатора события, удаляет его. Подпись для
handlerдолжен соответствовать следующее:- (void)handleAppleEvent:(NSAppleEventDescriptor *)event withReplyEvent: (NSAppleEventDescriptor *)replyEvent;
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
dispatchRawAppleEvent (_: withRawReply:handlerRefCon:) - dispatchRawAppleEvent:withRawReply:handlerRefCon:Вызывает событие Apple, указанное
theAppleEventбыть диспетчеризированным надлежащему обработчику событий Apple, если Вы были зарегистрированы путем вызоваsetEventHandler:andSelector:forEventClass:andEventID:.Объявление
Swift
func dispatchRawAppleEvent(_theAppleEvent: UnsafePointer<AppleEvent>, withRawReplytheReply: UnsafeMutablePointer<AppleEvent>, handlerRefConhandlerRefCon: SRefCon) -> OSErrObjective C
- (OSErr)dispatchRawAppleEvent:(const AppleEvent *)theAppleEventwithRawReply:(AppleEvent *)theReplyhandlerRefCon:(SRefCon)handlerRefConОбсуждение
theReplyпараметр всегда указывает событие Apple ответа, никогдаnil. Если тип дескриптора для события ответа, Однако обработчик не должен заполнять ответtypeNull, указание отправителя не хочет ответ.handlerRefconпараметр обеспечивает 4 байта данных к обработчику; общее использование для этого параметра должно передать указатель на дополнительные данные.Этот метод прежде всего предназначается для внутреннего использования Какао. Обратите внимание на то, что диспетчеризация события означает направлять событие к надлежащему обработчику в текущем приложении. Вы не можете использовать этот метод для отправки события в другие приложения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Учитывая ненулевое
suspensionIDвозвращенный вызовомsuspendCurrentAppleEvent, возвращает дескриптор для события, обработка которого была приостановлена.Объявление
Swift
func appleEventForSuspensionID(_suspensionID: NSAppleEventManagerSuspensionID) -> NSAppleEventDescriptorObjective C
- (NSAppleEventDescriptor *)appleEventForSuspensionID:(NSAppleEventManagerSuspensionID)suspensionIDОбсуждение
Эффекты видоизменения или сохранения возвращенного дескриптора не определены, несмотря на то, что это может быть скопировано.
appleEventForSuspensionID:может быть вызван в любом потоке, не только том в который соответствующий вызовsuspendCurrentAppleEventпроизошедший.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Возвращает дескриптор для
currentAppleEventесли событие Apple обрабатывается на текущем потоке.Объявление
Swift
var currentAppleEvent: NSAppleEventDescriptor? { get }Objective C
@property(readonly, retain) NSAppleEventDescriptor *currentAppleEventОбсуждение
Событие Apple обрабатывается на текущем потоке, если обработчик, зарегистрированный в
setEventHandler:andSelector:forEventClass:andEventID:передается в сейчас же илиsetCurrentAppleEventAndReplyEventWithSuspensionID:был просто вызван. Возвратыnilиначе. Эффекты видоизменения или сохранения возвращенного дескриптора не определены, несмотря на то, что это может быть скопировано.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
См. также
-
Если событие Apple обрабатывается на текущем потоке, возвращает соответствующий дескриптор события ответа.
Объявление
Swift
var currentReplyAppleEvent: NSAppleEventDescriptor? { get }Objective C
@property(readonly, retain) NSAppleEventDescriptor *currentReplyAppleEventОбсуждение
Событие Apple обрабатывается на текущем потоке если
currentAppleEventне возвращаетсяnil. Возвратыnilиначе. Этот дескриптор, включая любые мутации, будет возвращен к отправителю текущего события, когда вся обработка события была завершена, если отправитель запросил ответ. Эффекты сохранения дескриптора не определены; это может быть скопировано, но мутации копии не возвращаются к отправителю текущего события.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Учитывая ненулевое
suspensionIDвозвращенный вызовомsuspendCurrentAppleEvent, возвращает соответствующий дескриптор события ответа.Объявление
Swift
func replyAppleEventForSuspensionID(_suspensionID: NSAppleEventManagerSuspensionID) -> NSAppleEventDescriptorObjective C
- (NSAppleEventDescriptor *)replyAppleEventForSuspensionID:(NSAppleEventManagerSuspensionID)suspensionIDОбсуждение
Этот дескриптор, включая любые мутации, будет возвращен к отправителю приостановленного события, когда обработка события будет возобновлена, если отправитель запросил ответ. Эффекты сохранения дескриптора не определены; это может быть скопировано, но мутации копии возвращаются к отправителю приостановленного события.
replyAppleEventForSuspensionID:может быть вызван в любом потоке, не только том в который соответствующий вызовsuspendCurrentAppleEventпроизошедший.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Учитывая ненулевое
suspensionIDвозвращенный вызовомsuspendCurrentAppleEvent, сигнализируйте, что может теперь продолжаться обработка приостановленного события.Объявление
Swift
func resumeWithSuspensionID(_suspensionID: NSAppleEventManagerSuspensionID)Objective C
- (void)resumeWithSuspensionID:(NSAppleEventManagerSuspensionID)suspensionIDОбсуждение
Если отправитель запросил ответ, это может привести к непосредственной отправке события ответа к отправителю приостановленного события. Если
suspensionIDиспользовался в предыдущем вызовеsetCurrentAppleEventAndReplyEventWithSuspensionID:эффекты того вызова полностью отменены. Избыточные вызовыresumeWithSuspensionID:проигнорированы. Последующие вызовы другогоNSAppleEventManagerметоды с помощью той же приостановки ID недопустимы.resumeWithSuspensionID:может быть вызван в любом потоке, не только том в который соответствующий вызовsuspendCurrentAppleEventпроизошедший.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
setCurrentAppleEventAndReplyEventWithSuspensionID (_:) - setCurrentAppleEventAndReplyEventWithSuspensionID:Учитывая ненулевое
suspensionIDвозвращенный вызовомsuspendCurrentAppleEvent, устанавливает значения, которые будут возвращены последующими вызовамиcurrentAppleEventиcurrentReplyAppleEventбыть событием, обработка которого была приостановлена и ее соответствующее событие ответа, соответственно.Объявление
Swift
func setCurrentAppleEventAndReplyEventWithSuspensionID(_suspensionID: NSAppleEventManagerSuspensionID)Objective C
- (void)setCurrentAppleEventAndReplyEventWithSuspensionID:(NSAppleEventManagerSuspensionID)suspensionIDОбсуждение
Избыточные вызовы
setCurrentAppleEventAndReplyEventWithSuspensionID:проигнорированы.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Приостанавливает обработку текущего события и возвращает ID, который должен использоваться для возобновления обработки события, если событие Apple обрабатывается на текущем потоке.
Объявление
Swift
func suspendCurrentAppleEvent() -> NSAppleEventManagerSuspensionIDObjective C
- (NSAppleEventManagerSuspensionID)suspendCurrentAppleEventОбсуждение
Событие Apple обрабатывается на текущем потоке если
currentAppleEventне возвращаетсяnil. Возвраты обнуляют иначе. Приостановленное событие больше не является текущим событием после этого метода возвраты.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.3 и позже.
-
Следующие константы не должны использоваться и могут в конечном счете быть удалены.
Объявление
Objective C
extern const double NSAppleEventTimeOutDefault; extern const double NSAppleEventTimeOutNone;Константы
-
NSAppleEventTimeOutDefaultNSAppleEventTimeOutDefaultУказывает, что работа обработки событий должна продолжаться, пока тайм-аут не происходит на основе значения, определенного менеджером по корпоративным мероприятиям Apple (приблизительно 1 минута). Не в настоящее время используемый приложениями.
Доступный в OS X v10.0 и позже.
-
NSAppleEventTimeOutNoneNSAppleEventTimeOutNoneУказывает, что приложение готово ожидать неопределенно текущей работы для завершения. Не в настоящее время используемый приложениями.
Доступный в OS X v10.0 и позже.
-
-
NSAppleEventManagerWillProcessFirstEventNotification NSAppleEventManagerWillProcessFirstEventNotificationОтправленный
NSAppleEventManagerпрежде чем это сначала диспетчеризирует событие Apple. Ваше приложение может использовать это уведомление, чтобы избежать регистрировать любые обработчики событий Apple до первого раза, когда в который они могут быть необходимы. Объект уведомленияNSAppleEventManager. Это уведомление не содержит auserInfoсловарь.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
