我有一個應用程序將通過從下拉菜單中選擇它們來播放一系列廣播電臺。理想情況下,我想添加一些代碼,以便使Spotlight搜索返回下拉菜單中的任何項目,並打開應用程序,就像在應用程序本身中執行此操作一樣。使用Spotlight搜索結果打開處於特定狀態的應用程序
除了我發現的一些關於創建要編入索引的隱藏文件的舊帖子之外,聚光燈文檔沒有提供這種可能性的線索。
任何線索?
我有一個應用程序將通過從下拉菜單中選擇它們來播放一系列廣播電臺。理想情況下,我想添加一些代碼,以便使Spotlight搜索返回下拉菜單中的任何項目,並打開應用程序,就像在應用程序本身中執行此操作一樣。使用Spotlight搜索結果打開處於特定狀態的應用程序
除了我發現的一些關於創建要編入索引的隱藏文件的舊帖子之外,聚光燈文檔沒有提供這種可能性的線索。
任何線索?
您的個人電臺在內部是如何存儲/代表的? Spotlight是一個文件一個搜索結果。具有單個庫DB或類似的應用程序通常將這些項目導出到〜/ Library/Caches文件夾的子文件夾中。你會爲每個你想要搜索的項目寫一個聚光燈「存根」文件。這個「存根」文件將有它自己的單獨的擴展名/文檔類型(它仍然可以被你的應用打開),這就是你的Spotlight導入器的基礎。
先例:AddressBook.app。
例如,在我的一個應用程序中,有一箇中央(非基於文檔的)轉錄文庫數據庫。我希望用戶能夠搜索單獨的成績單,並讓他們在Spotlight中顯示爲單獨的結果。解決這個問題的唯一方法就是讓我的應用程序創建並維護一個一次性的「.transcriptstub」文件集合,這些文件具有可搜索的文本表示。
我說「一次性」,因爲在../Caches中的東西是很容易被你的應用程序重新創建,如果失蹤。如果應用程序啓動時需要更新它們(作爲單獨的NSOperation以防止長時間啓動),並在運行時修改它們。
當應用程序被交給這些存根之一打開時,它會在文件中使用一些標識符(一個UUID也許?)並在數據庫中查找。如果有匹配,它會在用戶界面中選擇該項目。
感謝這個Joshua,你已經設法解釋它比任何Apple文檔都要好得多。 – 2010-10-26 08:19:15