这个问题被问到已经五年了,但我刚刚想出了如何去做,所以我想我会分享我的发现。
除了将提到的@houbysoft 键添加到 Info.plist 之外,还需要手动将菜单项添加到调用 Help Viewer 的 Help 菜单。
所以示例代码(在 QMainWindow 的初始化中):
QMenu *helpMenu = new QMenu("Help", menuBar());
helpMenu->addAction(tr("&XYZ Help..."), this, SLOT(showHelp()));
(或者您可以通过其他方式添加菜单项,可能使用 Designer。)
showHelp() 方法:
void openHelp()
{
CFBundleRef appBundle = CFBundleGetMainBundle();
if (appBundle == NULL) {
return;
}
CFStringRef myBookName = (CFStringRef)CFBundleGetValueForInfoDictionaryKey(appBundle, CFSTR("CFBundleHelpBookName"));
if (!myBookName || CFGetTypeID(myBookName) != CFStringGetTypeID()) {
return;
}
AHLookupAnchor(myBookName, CFSTR("Start"));
}
请注意,我在文档的第一页添加了一个名为“Start”的锚点。替换"Start"为您自己的锚的名称。