我应该如何使用帮助:Snow Leopard .help 包中的 URL?
Posted
技术标签:
【中文标题】我应该如何使用帮助:Snow Leopard .help 包中的 URL?【英文标题】:How should I use a help: URL in a Snow Leopard .help bundle? 【发布时间】:2010-03-10 15:49:24 【问题描述】:我正在为我的应用程序编写帮助手册。根据需要,我在我的应用程序的 info.plist 中有 CFBundleHelpBookName 和 CFBundleHelpBookFolder 键,并且我正在使用新的 Snow Leopard .help 包格式作为帮助手册。 Rehearsals.help/Contents/Info.plist 中的各种键都按照Apple Help Programming Guide 填充。正如预期的那样,当用户从帮助菜单中选择“排练帮助”时,我的帮助书的索引页面(在适当的本地化版本中,目前只有英文)在帮助查看器中打开。
但实际上(当前)捆绑包中有两个 html 文件,index.html 和 support.html。我的理解是,如果我将命名锚点放在一个文件中,如下所示:
<a name="support"></a>
然后我可以从另一个文件链接到它,如下所示:
<a href="help:anchor=support bookID=info.thaesofereode.Rehearsals.help">Support</a>
但是这不起作用。也没有:
<a href="help:anchor=support">Support</a>
帮助查看器显示一个工作表,上面写着“帮助查看器无法打开此内容。”,如果我在帮助查看器中打开调试日志并得到帮助,我会看到:
10/03/2010 15:46:02 HelpViewer[2049] decidePolicyForNavigationAction: help:anchor=support%20bookID=info.thaesofereode.Rehearsals.help
10/03/2010 15:46:02 HelpViewer[2049] decidePolicyForNavigationAction: apple-help-content:help:anchor=support%2520bookID=info.thaesofereode.Rehearsals.help
10/03/2010 15:46:02 HelpViewer[2049] willSendRequest: <NSMutableURLRequest apple-help-content:help:anchor=support%2520bookID=info.thaesofereode.Rehearsals.help>
10/03/2010 15:46:02 HelpViewer[2049] Start loading apple-help-content:help:anchor=support%2520bookID=info.thaesofereode.Rehearsals.help
10/03/2010 15:46:02 HelpViewer[2049] Starting search for query "support" with return port com.apple.helpd-26755
10/03/2010 15:46:02 helpd[2050] PID #2050 - received message #0: HPDStartMessageID
10/03/2010 15:46:02 helpd[2050] Process 2049 requested callback at com.apple.helpd-26755 and sent query: HPDQuery 289928762.026442: "support" in ("info.thaesofereode.Rehearsals.help") of types ("com.apple.HelpArticleResult") with limit 0
10/03/2010 15:46:02 helpd[2050] Run loops which have yet to start: (
"com.apple.kbPlugin",
"com.apple.helpbookPlugin"
)
10/03/2010 15:46:02 helpd[2050] Search for this query has been delayed 1 time: support
10/03/2010 15:46:02 helpd[2050] Delayed search for query: "support"
10/03/2010 15:46:02 helpd[2050] Starting help articles search for query: "support"
10/03/2010 15:46:02 helpd[2050] Query 289928762.026442 returned results: (
)
10/03/2010 15:46:02 helpd[2050] Response sent to port: com.apple.helpd-26755
10/03/2010 15:46:02 helpd[2050] Query finished: HPDQuery 289928762.026442: "support" in ("info.thaesofereode.Rehearsals.help") of types ("com.apple.HelpArticleResult") with limit 0
10/03/2010 15:46:02 helpd[2050] Response sent to port: com.apple.helpd-26755
10/03/2010 15:46:02 HelpViewer[2049] <HVAnchorURLHandler: 0x1002bde50> finished query: HPDQuery 289928762.026442: "support" in ("info.thaesofereode.Rehearsals.help") of types ("com.apple.HelpArticleResult") with limit 0
10/03/2010 15:46:02 HelpViewer[2049] <HVAnchorURLHandler: 0x1002bde50> has results:
10/03/2010 15:46:02 HelpViewer[2049] Found no results for support
如何在 Snow Leopard 帮助包中正确使用帮助:URL? (不用说,我知道使用相对文件 URL 的解决方法,这很有效,但我希望帮助锚在应用程序内获得上下文帮助和链接。)
【问题讨论】:
【参考方案1】:事实证明,这些锚点和 URL 是正确的,并且有助于自动索引内容,但它会保持积极的缓存。如果帮助手册更新时没有增加版本号,则它不会扫描新的锚点。
rm -rf ~/Library/Caches/com.apple.help*
killall helpd
【讨论】:
谢谢!我花了好几个小时弄清楚为什么我们的锚不工作 - 杀死缓存是诀窍。【参考方案2】:您是否使用“帮助索引器”实用程序的首选项中选择的锚索引来索引您的帮助书? 好像锚不是索引...
当然,从那以后我也会检查我的主播名字,但我在做或说它们 10 分钟后就忘记了……
【讨论】:
感谢@drstrangeP0rk。 helpd 应该自动索引 Snow Leopard 中的帮助书籍,但我继续使用启用锚索引对其进行索引。没有不同。而且我确定锚匹配:-)以上是关于我应该如何使用帮助:Snow Leopard .help 包中的 URL?的主要内容,如果未能解决你的问题,请参考以下文章
如何停止安装在 Mac Snow Leopard 上的 Jenkins?
如何让 RabbitMQ 在 Snow Leopard 64 位上运行?
如何在 Mac OS X Snow Leopard 上启用 mysqli?
NSToolbar 在 Leopard 和 Snow Leopard 中看起来不同