Hi Larry,
I was very excited by your response, and put this into my info.plist:
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>dart</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>DartPlayer.icns</string>
<key>CFBundleTypeName</key>
<string>Dart</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>dart</string>
</array>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSIsAppleDefaultForType</key>
<true/>
<key>LSTypeIsPackage</key>
<false/>
<key>NSPersistentStoreTypeKey</key>
<string>XML</string>
</dict>
Unfortunately, that had no effect -- The binding still defaults to mounting a .dart file as a disk image. I wonder why?
This is after I copied the .app bundle into Applications and ran the application.
I even tried rebuilding the launchservices with lsregister, to no avail.
--Daniel
----------------------------------------
> CC: email@hidden
> From: email@hidden
> Subject: Re: launch services file association
> Date: Sat, 13 Jan 2007 21:47:46 -0500
> To: email@hidden
>
>
> On Jan 13, 2007, at 7:22 PM, Daniel Birns wrote:
>
> >>> Our application is associated with documents that have a .dart
> >>> suffix. The problem is that that suffix is already used by Apple:
> >>> com.apple.disk-image-dart.
> >>>
> >>> We can't really change it, because it's already in use on other
> >>> platforms. And we like it.
> >>>
> >>> Currently I'm overriding this default in a way that's working but
> >>> is kind of ugly. I haven't encountered a .dart disk image before,
> >>> and it doesn't seem to be in much use, so I think overriding this
> >>> is fairly safe.
> >>>
> >>> Here's how I'm doing it:
> >>>
> >>> { defaults read com.apple.LaunchServices 2>&1 | grep
> >>> dartdevices.dartplayer > /dev/null
> >>> } || {
> >>> defaults write com.apple.LaunchServices LSHandlers -array-add
> >>> '<dict><key>LSHandlerContentType</key><string>com.apple.disk-image-
> >>> dart</string><key>LSHandlerRoleAll</
> >>> key><string>com.dartdevices.dartplayer</string></dict>'
> >>> /System/Library/Frameworks/ApplicationServices.framework/Frameworks/
> >>> LaunchServices.framework/Support/lsregister -kill -r -domain local -
> >>> domain system -domain user
> >>> }
> >>>
> >>> The defaults command is used first to ensure I don't do this twice.
> >>> Then, if it's not already set, I add a default for this user to use
> >>> our app instead of the Apple default.
> >>>
> >>> Then I use lsregister to reset the users LaunchServices --
> >>> otherwise it doesn't seem to take.
> >>>
> >>> Is all this safe? Is there a better way to do this?
> >>
> >> This seems very heavy-handed to me. How do you have your plist entry
> >> set up for this? Do you use a file type for these?
> >
> > I agree that it's heavy-handed, and I'd much prefer a different
> > way. The plist file is setup via the XCode Target Properties.
> > this works fine, except that the apple Disk Image takes priority.
> > So if you double click on our document, it tries to open it as a
> > Disk Image. You have to select Open With. This only comes up
> > because we use a suffix that's already used by Apple.
> >
> > Here's what's in the plist:
> >
> > <key>CFBundleDocumentTypes</key>
> > <array>
> > <dict>
> > <key>CFBundleTypeExtensions</key>
> > <array>
> > <string>dart</string>
> > </array>
> > <key>CFBundleTypeIconFile</key>
> > <string>DartPlayer.icns</string>
> > <key>CFBundleTypeName</key>
> > <string>Dart</string>
> > <key>CFBundleTypeOSTypes</key>
> > <array>
> > <string>dart</string>
> > </array>
> > <key>CFBundleTypeRole</key>
> > <string>Editor</string>
> > <key>LSTypeIsPackage</key>
> > <false/>
> > <key>NSPersistentStoreTypeKey</key>
> > <string>XML</string>
> > </dict>
> > </array>
>
> Have you tried adding:
>
> <key>LSIsAppleDefaultForType</key>
> <true/>
>
> Larry
>
> PS: Please don't take threads private. It excludes smart people from
> the discussion. ;-)
>
_________________________________________________________________
Type your favorite song. Get a customized station. Try MSN Radio powered by Pandora.
http://radio.msn.com _______________________________________________
Do not post admin requests to the list. They will be ignored.
Carbon-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/carbon-dev/email@hidden
This email sent to email@hidden