2013-05-22 94 views
3

我正在製作基於文檔的應用程序,其中文檔是應用程序包。 我可以通過「文件→打開」菜單打開它們。但是,當我嘗試將它們放在Dock圖標上時,它們會被拒絕,並且圖標不會突出顯示。通過將其放在OS X中基於文檔的應用程序圖標上打開文檔

我已經搜索過這個問題,它似乎應該只是工作,因爲LSItemContentTypes屬性被指定。這是我的Info.plist摘錄:(我開發的Xcode之外,這是一個TextMate的格式的plist文件)

CFBundleDocumentTypes = (
    { CFBundleTypeName = "Example"; 
     CFBundleTypeRole = "Editor"; 
     LSHandlerRank = "Alternate"; 
     LSItemContentTypes = ("com.apple.application-bundle"); 
     NSDocumentClass = "Example"; 
     NSExportableTypes = ("com.apple.application-bundle"); 
    }, 
); 

而且我想在我的應用程序委託,但他們實施application:openFile:application:openFiles:永遠不會打電話。

日誌中沒有警告或其他相關消息。我錯過了什麼?

+0

也許添加擴展名? ' CFBundleTypeExtensions app' –

+0

不起作用。我沒有它,因爲LSItemContentTypes優先於它。請參閱https://developer.apple.com/library/mac/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html –

回答

0

也許你需要將LSTypeIsPackage設置爲YES

這是我看到你的plist和我的打開包的唯一區別。

之後,也許你需要註銷/登錄,重新啓動應用程序,或其他任何「刷新系統/啓動服務」?

+0

我重新啓動了我的Mac,但沒有任何幫助。根據文檔:「如果LSItemContentTypes鍵存在,則忽略此鍵」https://developer.apple.com/library/mac/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html –

+0

無論如何,我很高興知道我的plist很好。我會嘗試在新應用中重現問題,特別是在我的應用中可能存在問題。 –

相關問題