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() -> NSAppleEventManager
Objective 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)
eventClass
andEventID:(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)
handler
andSelector:(SEL)handleEventSelector
forEventClass:(AEEventClass)eventClass
andEventID:(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 *)
theAppleEvent
withRawReply:(AppleEvent *)theReply
handlerRefCon:(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() -> NSAppleEventManagerSuspensionID
Objective 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;
Константы
-
NSAppleEventTimeOutDefault
NSAppleEventTimeOutDefault
Указывает, что работа обработки событий должна продолжаться, пока тайм-аут не происходит на основе значения, определенного менеджером по корпоративным мероприятиям Apple (приблизительно 1 минута). Не в настоящее время используемый приложениями.
Доступный в OS X v10.0 и позже.
-
NSAppleEventTimeOutNone
NSAppleEventTimeOutNone
Указывает, что приложение готово ожидать неопределенно текущей работы для завершения. Не в настоящее время используемый приложениями.
Доступный в OS X v10.0 и позже.
-
-
NSAppleEventManagerWillProcessFirstEventNotification NSAppleEventManagerWillProcessFirstEventNotification
Отправленный
NSAppleEventManager
прежде чем это сначала диспетчеризирует событие Apple. Ваше приложение может использовать это уведомление, чтобы избежать регистрировать любые обработчики событий Apple до первого раза, когда в который они могут быть необходимы. Объект уведомленияNSAppleEventManager
. Это уведомление не содержит auserInfo
словарь.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.