我有一个应用程序,可以通过从下拉菜单中选择来播放一系列广播电台。理想情况下,我想添加一些代码,以便聚焦搜索将返回下拉列表中的任何项目并打开应用程序,就像您在应用程序本身中执行此操作一样。
除了我发现一些关于创建要索引的隐藏文件的旧帖子之外,聚光灯文档没有提供任何线索来说明这是否可能。
有什么线索吗?
我有一个应用程序,可以通过从下拉菜单中选择来播放一系列广播电台。理想情况下,我想添加一些代码,以便聚焦搜索将返回下拉列表中的任何项目并打开应用程序,就像您在应用程序本身中执行此操作一样。
除了我发现一些关于创建要索引的隐藏文件的旧帖子之外,聚光灯文档没有提供任何线索来说明这是否可能。
有什么线索吗?
您的各个电台如何在内部存储/表示?Spotlight 是一文件一搜索结果。具有单个库 DB 或类似的应用程序通常会将这些项目导出到 ~/Library/Caches 文件夹的子文件夹中。您将为每个要搜索的项目编写一个聚光灯“存根”文件。这个“存根”文件将有自己单独的扩展名/文档类型(您的应用程序仍然可以打开),这就是您的 Spotlight 导入器的基础。
前例:AddressBook.app。
例如,在我的一个应用程序中,有一个中央(非基于文档的)成绩单库数据库。我希望用户能够搜索单个成绩单并将它们显示为 Spotlight 中的单独结果。解决这个问题的唯一方法是让我的应用程序创建和维护一个一次性的“.transcriptstub”文件集合,这些文件包含可搜索的文本表示。
我说“一次性”是因为 ../Caches 中的内容如果丢失,可以很容易地由您的应用程序重新创建。如果需要,我会在应用程序启动时更新它们(作为单独的 NSOperation 以防止长时间启动),并在运行时对其进行修改时更新它们。
当应用程序被交给这些存根之一打开时,它会使用文件中的一些标识符(也许是 UUID?)并在数据库中查找它。如果有匹配项,它会在 UI 中选择该项目。