如何將Info.plist中指定類型的文件拖放到Dock圖標上,然後使用文件的完整路徑調用方法?將文件拖放到可可中的Dock圖標上
回答
如果您已經設置了您的Info.plist的CFBundleDocumentTypes陣列正確(或「LSItemContentTypes」或「CFBundleTypeExtensions」),那麼你只需要設立的NSApplication代表和實現委託方法,application:openFile:。
如果您希望立即刪除多個文件,請執行application:openFiles:。
對於承諾的文件(NSFilesPromisePboardType
/kPasteboardTypeFileURLPromise
)請參閱Dropping promised files on to application icon in Dock。
我已經正確設置了我的CFBundleDocumentTypes數組,並編寫了該方法,但停靠欄圖標不會接受我的文件。 – 2010-03-22 14:03:39
Tristian Seifert:這個問題的一個可能原因是你在你的plist中指定了一個UTI,但它是錯誤的:http:// boredzo。org/blog/archives/2007-07-23/how-to-make-your-apps-dock-tile-highlight你也應該確保導入你在plist中提到的任何UTI:http://developer.apple。 com/mac/library/documentation/FileManagement/Conceptual/understanding_utis/ – 2010-03-22 14:32:09
閱讀這兩個文檔後,我仍然不太明白如何將UTI添加到現有的PList中。這裏是我的Info.plist的一小部分: \t \t
如果您實際製作基於文檔的應用程序,將其設置爲給您的路徑將使您做更多的工作,而不是您需要的。只需使用基於文檔的應用程序模板即可。文檔控制器將爲您創建合適的類的實例;你只需要寫這個類。
您以這種方式創建的應用程序將免費處理文件丟失(通過打開它們作爲文檔)。
這不是一個基於文檔的應用程序,它是一個電子郵件閱讀器,我希望能夠將草稿,郵箱等拖到我的停靠欄圖標上。 – 2010-03-22 14:02:44
在側窗格的目標組中選擇您的應用程序並使用get info。然後在新窗口中選擇屬性選項卡以添加新的文檔類型。將它命名爲「文件夾」以方便操作系統類型需要「摺疊」;商店類型和角色您可以保留原樣。
謝謝它幫助我使我的應用程序工作。 – AmitSri 2011-02-11 10:25:52
在當前系統上,您可以使用UTI而不是舊式的四字符類型(例如上面的fold
)。在Xcode的文檔類型的編輯器,使一個新的類型有:
- 名稱:文件夾
- 標識符:public.folder
public.folder
是public.directory
一個亞型。 public.folder
與向用戶顯示的目錄匹配,即不包裝如.app
包裝。
下面是Xcode的5 更新的解決方案在AppDelegate.m
-(BOOL)application:(NSApplication *)sender openFile:(NSString *)filename
{
NSLog(@"%@", filename);
return YES;
}
及根據項目>目標的Xcode設置文檔類型>信息:在Info.plist中
檢查設置如果您有一個空的'文檔內容類型UTI'數組,應該正確填寫或刪除。
你的Info.plist應該是這個樣子:
很好的答案!很有幫助。謝謝 – gypsyDev 2014-08-09 11:45:09
請注意,這將使您的應用程序接受任何*文件,而不僅僅是給定的擴展名,因爲CFBundleTypeExtensions設置爲'*'。如果您只支持某些文件擴展名,請在其中指定它們。否則,操作系統將提供打開隨機文件與您的應用程序只是爲了您的應用程序失敗。 – uliwitness 2017-05-25 10:57:44
- 1. 在可可中拖放Dock圖標 - 建立文件關聯
- 2. 拖動Dock圖標上的文件
- 3. 將文件拖放到C++中的桌面圖標上WinForms
- 4. 拖放文件夾視圖可可
- 5. 將多個文件拖放到可執行文件C上#
- 6. HTML5拖放 - 將選擇文本拖放到可拖放元素
- 7. *可恢復* html5拖放文件上傳
- 8. 可可/對象 - - 打開文件拖放到應用程序圖標時
- 9. 將D3標籤拖放到可拖動的圓圈
- 10. 可可:拖放svg圖像
- 11. Qt 4.8.5 Mac Handle文件放在Dock上圖標
- 12. 可可:拖放任何文件類型
- 13. 將文件拖放到.sh文件中
- 14. 將word文件拖放到窗體上
- 15. 將文件拖放到NSTableView上?
- 16. 拖放不可用於可可中的第二個xib文件?
- 17. JavaFX忽略將拖放文件拖放到TextField上(Mac OS X)
- 18. 將文件/文本拖放到托盤圖標(C#,WindowsForms)
- 19. Jquery的可排序找到可拖動和可投放標識
- 20. 是否可以將視圖拖放到自己的XIB中?
- 21. 用可拖動的圖像更改可拖放的圖像源
- 22. Linux mint將文件拖放到我的程序的桌面圖標上
- 23. 圖像可以拖放到jqgrid的文本框中
- 24. 將可拖動元素堆疊到可拖放容器中(底部到頂部)
- 25. 可拖放的事件在可拖動的可丟棄對象上被拖放並再次拖動之後,可以放棄的事件不能正常工作
- 26. 將圖像拖放到畫布可投放區域
- 27. 拖放圖像可見性
- 28. 將文件拖放到Firefox中下載
- 29. 將文件夾拖放到Eclipse IDE中?
- 30. 將HTML文件拖放到C#表中
我不明白的問題。用戶是否將文件拖動到Dock圖標上,還是想以編程方式打開文件? – 2010-03-22 04:25:42
我的意思是實際獲得放置在停靠欄圖標上的文件的路徑。 – 2010-03-22 04:43:28