On Sep 13, 2014, at 12:09 AM, Ken Thomases <[email protected]> wrote:
> On Sep 12, 2014, at 12:37 PM, Daryle Walker <[email protected]> wrote: > >> I’m looking at >> <https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ScriptableCocoaApplications/SApps_handle_AEs/SAppsHandleAEs.html#//apple_ref/doc/uid/20001239-1121328>. >> >> 2. Doing the action involves calling the Carbon handler. The legacy docs >> mention calling the service that can handle the appropriate data type. But >> the prose acts like either you have an appropriate handler or you don’t. But >> I’ve been looking over the Services docs, and you can have multiple >> services, even multiple handlers for the same data type! The doc writers, or >> worse the API writers, sloppily didn’t consider that case. Is there a secret >> dictionary key to indicate which service to use? Do the system pick the >> first one? Or would the writers punt and insist that programmers forfeit the >> automatic handling and write an Apple event override for the open-contents >> event? (And Apple’s writers need to add that case.) > > Well, it will limit itself to services which take the data type and have no > return data type. You're right, though, that that still could mean multiple > services qualify. I'm not aware of any built-in way to tell the system which > service it should use when there is ambiguity. > > (I found this in the Carbon-Dev list archives: > <https://lists.apple.com/archives/carbon-dev/2006/Jan/msg00932.html>. The > email is hidden to foil spam bots and I'm not familiar with the author's > name, but the language suggests it's from an Apple engineer. It says that > the first qualifying service in the Info.plist will be used. Take that for > what it's worth.) Since I’ve been subscribed to the Carbon and Cocoa dev lists since I got an iTools account in the late 1900s, I searched for the message with Mail. (Thank you, IMAP.) I found it and, yes, the author has an @apple.com e-mail address. Since that post was written, the send and return type lists are now optional, and they can take UTI strings. I guess I would need to add a send-type list. I wonder if I can use (relatively) base UTIs for types. For instance, using public.image instead of listing both public.png and public.jpeg. If so, I’d use a public.content wildcard since I can take (almost) everything. I just hope the actual items will have their actual UTIs, and not the base type. I also would have to list my special handler for URLs first. > So, when there's no documented solution, you should not rely on getting the > behavior you want (or any specific behavior). You should take control and > make sure that what you want done is done. > > It's not terribly hard to install your own handler for the "open contents" > event and do the right thing. You could pick a service and invoke it, but > that seems rather roundabout. You are the one who supplies the handler for > the service, so you might as well just invoke it directly. — Daryle Walker Mac, Internet, and Video Game Junkie darylew AT mac DOT com _______________________________________________ Cocoa-dev mailing list ([email protected]) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [email protected]
