Date
1 - 4 of 4
How to make typeAlias ?
Gerriet M. Denkmann
I have some (old) code like:
NSAppleEventDescriptor *eventDecriptor = ….
DescType descriptorType = eventDecriptor.descriptorType;
if ( descriptorType == typeAlias ) // ‘alis’
{
… How to get here?
}
else if ( descriptorType == typeFileURL ) // 'furl'
{
/* This can be triggered via AppleScript:
tell application “MyApp"
open POSIX file "/tmp/abc"
end tell
**/
…
}
else if ( descriptorType == typeBookmarkData ) // ‘bmrk'
{
// Select file(s) in Finder, drag onto MyApp Icon in Dock
…
}
else // error
{
…
}
How can I create a typeAlias eventDecriptor?
Or is typeAlias obsolete and will never happen?
Gerriet.
NSAppleEventDescriptor *eventDecriptor = ….
DescType descriptorType = eventDecriptor.descriptorType;
if ( descriptorType == typeAlias ) // ‘alis’
{
… How to get here?
}
else if ( descriptorType == typeFileURL ) // 'furl'
{
/* This can be triggered via AppleScript:
tell application “MyApp"
open POSIX file "/tmp/abc"
end tell
**/
…
}
else if ( descriptorType == typeBookmarkData ) // ‘bmrk'
{
// Select file(s) in Finder, drag onto MyApp Icon in Dock
…
}
else // error
{
…
}
How can I create a typeAlias eventDecriptor?
Or is typeAlias obsolete and will never happen?
Gerriet.
Shane Stanley
On 30 Aug 2017, at 7:15 pm, Gerriet M. Denkmann <g@...> wrote:
You ask about creating a typeAlias eventDescriptor, but your code is triggered only if you already have such a thing.
--
Shane Stanley <sstanley@...>
<www.macosxautomation.com/applescript/apps/>, <latenightsw.com>
Your code answers that question. What you don't explain is what you want to do, presumably with the descriptor, when you get there.
… How to get here?
You ask about creating a typeAlias eventDescriptor, but your code is triggered only if you already have such a thing.
--
Shane Stanley <sstanley@...>
<www.macosxautomation.com/applescript/apps/>, <latenightsw.com>
Gerriet M. Denkmann
On 30 Aug 2017, at 16:41, Shane Stanley <sstanley@...> wrote:Sorry, if my explanation was not too clear.
On 30 Aug 2017, at 7:15 pm, Gerriet M. Denkmann <g@...> wrote:Your code answers that question. What you don’t explain is what you want to do, presumably with the descriptor, when you get there.
… How to get here?
This is the code:
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
NSAppleEventManager *sharedAppleEventManager = [ NSAppleEventManager sharedAppleEventManager ];
[ sharedAppleEventManager setEventHandler: self
andSelector: @selector(handleAppleEvent:withReplyEvent:)
forEventClass: kCoreEventClass // 'aevt'
andEventID: kAEOpenDocuments // 'odoc'
];
}
- (void)handleAppleEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent;
{
NSAppleEventDescriptor *dirctObj = [ event descriptorForKeyword: keyDirectObject ];
DescType descriptorType = dirctObj.descriptorType;
if ( descriptorType == cAEList ) // 'list'
{
... some code here, calling pathFromDescriptor: for all items in list
}
else
{
NSString *path = [ self pathFromDescriptor: dirctObj ];
...
}
}
- (NSString *)pathFromDescriptor: (NSAppleEventDescriptor *)dirctObj;
{
DescType descriptorType = dirctObj.descriptorType;
if ( descriptorType == typeAlias ) // 'alis'
{
*** This is the stuff I need to test ***
… but I do not know how to trigger this path
… maybe some AppleScript?
}
else if ( descriptorType == typeFileURL ) // 'furl'
{
// get here via AppleScript
}
else if ( descriptorType == typeBookmarkData ) // 'bmrk'
{
// get here by dragging to dock
}
else // error
{
… error handling
}
}
Kind regards,
Gerriet.
Shane Stanley
On 30 Aug 2017, at 8:04 pm, Gerriet M. Denkmann <g@...> wrote:
open alias "Macintosh HD:path:to:file" -- HFS path
end tell
or if you don't want to use an HFS path directly:
set theFile to POSIX file "/tmp/abc" as alias
tell application “MyApp"
open theFile
end tell
--
Shane Stanley <sstanley@...>
<www.macosxautomation.com/applescript/apps/>, <latenightsw.com>
tell application “MyApp"
DescType descriptorType = dirctObj.descriptorType;
if ( descriptorType == typeAlias ) // 'alis'
{
*** This is the stuff I need to test ***
… but I do not know how to trigger this path
… maybe some AppleScript?
open alias "Macintosh HD:path:to:file" -- HFS path
end tell
or if you don't want to use an HFS path directly:
set theFile to POSIX file "/tmp/abc" as alias
tell application “MyApp"
open theFile
end tell
--
Shane Stanley <sstanley@...>
<www.macosxautomation.com/applescript/apps/>, <latenightsw.com>