Справка по macOS для Apple - Авторы - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь создать справочную книгу Apple для моего приложения macOS, которую я готов выпустить.Однако я пытаюсь заставить работать якоря в моем HTML.По определению Apple:

"Якоря позволяют однозначно определять темы в вашей справочной книге. Когда пользователь переходит по ссылке на привязку, средство просмотра справки загружает страницу, содержащую привязку. ... Вы можететакже используйте якоря для загрузки привязанной страницы из вашего приложения, вызывая метод NSHelpManager openHelpAnchor: inBook: ... "

Пример от Apple: <a name="ArrivalTimesUsingStopID"></a>

В моемApple, у меня есть NSAlert, который имеет следующий код для отображения кнопки справки, чтобы при нажатии на нее она открывала указанную строку привязки.

alert.showsHelp = true
alert.helpAnchor = NSHelpManager.AnchorName(stringLiteral: "ArrivalTimesUsingStopID")

При запуске кода отображается кнопка справки и MacСправка открывается, но с ошибкой, указывающей, что указанное содержимое не может быть найдено.Не знаю, почему якоря не работают, потому что я могу получить доступ к Справочной книге, если я зайду в меню Справки и открою ее оттуда.

Кроме того, в документе Apple говорится:

Классы NSAlert, SFChooseIdentityPanel, SFCertificatePanel предоставляют кнопки справки для диалогов.Чтобы отобразить такую ​​кнопку справки и связать ее с привязкой в ​​вашей справочной книге, используйте методы setShowsHelp: и setHelpAnchor: в этих классах.

и документацию для этих свойств в состоянии NSAlert:

-setShowsHelp: ДА добавляет кнопку справки на панель предупреждений.Когда кнопка помощи нажата, делегат сначала консультируется.Если делегат не реализует alertShowHelp: или возвращает NO, тогда - [NSHelpManager openHelpAnchor: inBook:] вызывается с нулевой книгой и привязкой, указанной в -setHelpAnchor :, если таковые имеются.Будет сгенерировано исключение, если делегат вернет NO, а привязка справки не установлена.

... поэтому я знаю, что использую эти два правильно.

Я также понимаючто мне нужно создавать файл .helpindex каждый раз, когда я обновляю HTML-документы своей справочной книги Apple.Я использую "Help Indexer.app", который находится в Дополнительных инструментах XCode на developer.apple.com.Я уверен, что:

  • У меня есть опция для индексации всех якорей.
  • Любая HTML-страница с якорем имеет <meta name="ROBOTS" content="ANCHORS"> в заголовке, поэтому якоря индексируются.
  • Мой список файлов справочной книги Apple правильно указывает на файл .helpindex, созданный «Help Indexer.app».

Но даже при всем этом я не могу его открыть AppleСправочная книга для правильной привязки или даже Титульная страница моей справочной книги Apple.

Я прочитал https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/user_help_intro/user_assistance_intro.html#//apple_ref/doc/uid/TP30000903-CH204-CHDIDJFE

от обложки до обложки несколько раз, и я не могу найти решение или где-либо ещев сети.

Я также пытался открыть его вручную, но он просто открывает ту же ошибку, говоря, что указанное содержимое не может быть найдено с помощью следующего кода:

let bookName = Bundle.main.object(forInfoDictionaryKey: "CFBundleHelpBookName") as! String
NSHelpManager.shared.openHelpAnchor("ArrivalTimesUsingStopID", inBook: bookName)

Использование nil для параметра inBook тоже не работает:

NSHelpManager.shared.openHelpAnchor("ArrivalTimesUsingStopID", inBook: nil)

Есть идеи?

...