Xojo Conferences

Platforms to show: All Mac Windows Linux Cross-Platform

NSAppleEventDescriptorMBS class

Type Topic Plugin Version macOS Windows Linux Console & Web iOS
class Apple Script MBS MacCocoa Plugin 11.2 Yes No No Yes, macOS only No
Function: An instance of NSAppleEventDescriptor represents a descriptor—the basic building block for Apple events.
This class is a wrapper for the underlying Apple event descriptor data type, AEDesc. Scriptable Cocoa applications frequently work with instances of NSAppleEventDescriptor, but should rarely need to work directly with the AEDesc data structure.

A descriptor is a data structure that stores data and an accompanying four-character code. A descriptor can store a value, or it can store a list of other descriptors (which may also be lists). All the information in an Apple event is stored in descriptors and lists of descriptors, and every Apple event is itself a descriptor list that matches certain criteria.

Important: An instance of NSAppleEventDescriptor can represent any kind of descriptor, from a simple value descriptor, to a descriptor list, to a full-fledged Apple event.
Descriptors can be used to build arbitrarily complex containers, so that one Apple event can represent a script statement such as tell application "TextEdit" to get word 3 of paragraph 6 of document 3.

In working with Apple event descriptors, it can be useful to understand some of the underlying data types. You'll find terms such as descriptor, descriptor list, Apple event record, and Apple event defined in Building an Apple Event in Apple Events Programming Guide. You'll also find information on the four-character codes used to identify information within a descriptor. Apple event data types are defined in Apple Event Manager Reference. The values of many four-character codes used by Apple (and in some cases reused by developers) can be found in AppleScript Terminology and Apple Event Codes.

The most common reason to construct an Apple event with an instance of NSAppleEventDescriptor is to supply information in a return Apple event. The most common situation where you might need to extract information from an Apple event (as an instance of NSAppleEventDescriptor) is when an Apple event handler installed by your application is invoked, as described in "Installing an Apple Event Handler" in How Cocoa Applications Handle Apple Events. In addition, if you execute an AppleScript script using the NSAppleScript class, you get an instance of NSAppleEventDescriptor as the return value, from which you can extract any required information.

When you work with an instance of NSAppleEventDescriptor, you can access the underlying descriptor directly, if necessary, with the aeDesc method. Other methods, including descriptorWithDescriptorType make it possible to create and initialize instances of NSAppleEventDescriptor without creating temporary instances of memoryblock.

Cocoa doesn't currently provide a mechanism for applications to directly send raw Apple events (though compiling and executing an AppleScript script with NSAppleScript may result in Apple events being sent). However, Cocoa applications have full access to the Apple Event Manager C APIs for working with Apple events. So, for example, you might use an instance of NSAppleEventDescriptor to assemble an Apple event and call the Apple Event Manager function AESend to send it.

If you need to send Apple events, or if you need more information on some of the Apple event concepts described here, see Apple Events Programming Guide and Apple Event Manager Reference.

Feedback, Comments & Corrections

Send Options

Constant Value Description
NSAppleEventSendAlwaysInteract &h30 Server should always interact with user where appropriate.
NSAppleEventSendCanInteract &h20 Server may try to interact with user.
NSAppleEventSendCanSwitchLayer &h40 Interaction may switch layer.
NSAppleEventSendDefaultOptions &h23 Default options: WaitForReply with CanInteract.
NSAppleEventSendDontAnnotate &h10000 Don't automatically add any sandbox or other annotations to the event.
NSAppleEventSendDontExecute &h2000 Don't execute this event; used for recording.
NSAppleEventSendDontRecord &H1000 Don't record this event.
NSAppleEventSendNeverInteract &h10 Server should not interact with user.
NSAppleEventSendNoReply 1 Sender doesn't want a reply to event.
NSAppleEventSendQueueReply 2 Sender wants a reply but won't wait.
NSAppleEventSendWaitForReply 3 Sender wants a reply and will wait.

This class has no sub classes.

Some methods using this class:

Some properties using for this class:

Some events for this class:

Some examples which use this class:


NSAppearanceMBS   -   NSAppleEventHandlerMBS

MBS Xojo PDF Plugins