Apple 帮助创作

2024-06-02

我正在跟进本指南 http://developer.apple.com/library/mac/#documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/authoring_help/authoring_help_book.html#//apple_ref/doc/uid/TP30000903-CH206-CIHEAADH向公众提供一些苹果帮助。我工作的应用程序多年来一直内置帮助,但它突然停止工作,并且没有对应用程序 plist 或任何帮助文件进行任何更改。我们假设苹果改变了一些东西,所以我确保它符合苹果要求的规格。当我说“不起作用”时,我的意思是我们的链接使用NSHelpManager将打开帮助查看器,但返回未找到的页面。

清单上需要检查的事项:

  1. 页面顶部有一个具有正确名称的锚点
  2. 文件夹结构是前面链接的那篇文章中内容的副本
  3. 我们正在重新索引帮助页面
  4. 我们确实清除了所有缓存

这是我们用来打开帮助页面的代码:

NSString *locBookName = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleHelpBookName"];
[[NSHelpManager sharedHelpManager] openHelpAnchor:@"mypage" inBook:locBookName];

在这种情况下,我们会有一个页面<a name="mypage"></a>位于顶部,因此它应该正确链接。我们的脚本如下:

hvfix(清除所有缓存):

rm -rf ~/Library/Caches/com.apple.help*
rm -rf ~/Library/Preferences/com.apple.help*
rm -rf ~/.Trash/*
killall helpd
defaults write com.apple.helpindexer IndexAnchors YES

updatehelpindex.sh(重新生成索引)

#!/bin/sh
hiutil -C -f MyApp.help/Contents/Resources/English.lproj/MyApp.helpindex
MyApp.help/Contents/Resources/English.lproj/

我们进行构建,将文件夹放入应用程序文件夹中,以便注册应用程序和帮助。我们甚至尝试重新启动或注销/登录,但仍然一无所获。我知道这是一个非常繁琐的过程,但我们所做的一切似乎都不起作用。我们想要做的就是使用NSHelpManager打开帮助锚。毫无疑问,这在 10.6+ 中有效,就像许多其他应用程序一样(一些报告表明它在 10.7/8 中不起作用,但它们一定是不真实的)。

Ideas?

编辑(文件夹结构):

它位于 MyProj.help 文件夹中,该文件夹位于整个 Cocoa 项目的一个名为“help”的子目录中。

+ Contents
     Info.plist
     + Resources
         + shrd
              (a bunch of image files)
         + English.lproj
               MyProj.helpindex
               index.html
               + css
               + pgs
               + gfx

文件夹中的内容正如预期的那样,“css”中有一堆 CSS 文件,“pgs”有 HTML 页面,“gfx”有图像文件。


当向系统注册 HelpBook 时,沙箱影响 HelpViewer 目录搜索的方式似乎是一个错误(如中所述)这个错误报告 http://openradar.appspot.com/12116431),这充分解释了为什么它出现在 10.7 和 10.8 上,但没有出现在 10.6 及更早版本上。就连苹果的NS警报测试 http://developer.apple.com/library/mac/#samplecode/NSAlertTest/Introduction/Intro.html深受其苦。不幸的是,由于截至本文撰写时错误报告仍未解决,因此没有可行的解决方案,但我运行的少数测试已证实 NHelpManager 完全忽略了我计算机上的沙盒帮助 plist。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apple 帮助创作 的相关文章

随机推荐

  • 使用 jq 过滤空值和/或 null 值

    我有一个包含 jsonlines 的文件 想找到空值 name Color TV price 1200 available name DVD player price 200 color null 并希望输出空和 或空值及其键 availa
  • 使用 ImapMailbox.php 按日期对 Imap 邮箱进行排序

    我有一个客户支持系统 它会在收到电子邮件时创建电子邮件 我曾经使用后缀和特殊配置来获取电子邮件以添加额外的功能 例如 我想包含从电子邮件发送的附件 系统不会执行此操作 而是创建一封带有主题的电子邮件 因此我可以通过匹配主题来包含附件 我使用
  • Excel:查找和替换宏 - 仅一列

    我编写了一些宏来将大量数据格式化为相同的可接受格式 我们从中提取的程序拒绝按照我们想要的方式提取数据 但理论上在 Excel 中更改并不难 它设置运行的方式是为修饰符使用单独的宏 然后使用 全部运行 宏来调用所有修饰符 目前我有 Sub R
  • 具有主区域的 OpenMP for 循环:“主区域可能不会紧密嵌套在工作共享或显式任务区域内”

    我有以下代码 我相信它应该显示一个进度条 近似整个过程的进度 因为循环的每个并行线程应该以大约相同的速率进行 pragma omp parallel for for long int x 0 x
  • PHP DBlib PDO 问题

    我正在尝试通过 php 连接到 MSSQL 服务器 但我的 pdo 连接给我带来了困难和我不太理解的错误 我在下面粘贴的代码一周前运行得很好 突然间它就停止了 没有任何人进行任何更改 我仍然可以连接到服务器并直接从命令行运行查询 但我在 p
  • 如何将小时数大于24的字符串解析为TimeSpan?

    如何在 C 中将 30 15 这样的字符串解析为 TimeSpan 30 15 表示 30 小时 15 分钟 string span 30 15 TimeSpan ts TimeSpan FromHours Convert ToDouble
  • 为什么查询优化器完全忽略索引视图索引?

    SQL 小提琴 http sqlfiddle com 6 d4496 1 http sqlfiddle com 6 d4496 1 数据是为您的实验预先生成的 有一个明显的表格 CREATE TABLE Entity ID int Clas
  • Parse.com - 获取 [PFUser currentUser] 中包含的指针数据

    我正在使用 Parse com iOS SDK 并且我不知道需要调用什么方法来确保 PFUser currentUser 包含其中包含的每个指针的数据 这可能很简单 但是 作为这个平台的初学者 我找不到解决方案 只是为了澄清一下 我试图在下
  • 如何将 blazor 客户端/服务器应用程序发布到 Linux Web 服务器?无法访问 ssh 并且 dotnetpublish 没有给出index.html

    我已经构建了一个 blazor 应用程序 目前没有任何问题 当我调用 dotnetpublish cRelease 时 我得到一个已发布的项目 除了输出是一个可执行文件 ubuntu将其作为八位字节流或类似的东西拾取 如果我运行它 它只会在
  • 需要在c#中的字符串中的“单词”之后获取一个字符串

    我在 C 中有一个字符串 我必须在字符串中找到特定的单词 code 并且必须获取单词 code 之后的剩余字符串 该字符串是 错误描述 code 1 所以我必须找到这个词code在上面的字符串中 我必须获取错误代码 我见过正则表达式 但现在
  • BufferStrategy.getDrawGraphics() 在切换到全屏独占模式后有时会失败

    我使用 BufferStrategy 等初始化扩展的 jFrame 在屏幕上得到一个漂亮的动画圆圈 我设置了一个关键侦听器 在更新绘制线程之外 它告诉更新绘制线程在全屏独占模式之间进行更改 在更改完成之前不进行更新或绘制 这通常是有效的 但
  • 如何命名泛型类的 C# 源文件

    我试图坚持通用命名约定 例如中描述的那些开发类库的设计指南 http msdn microsoft com en us library ms229042 aspx 我将每种类型放入其自己的源文件中 并且部分类将拆分为多个文件 如问题中所述部
  • 如果 && 不在控制语句中,它在 JavaScript 中如何工作?

    最近我正在处理一些 JavaScript 代码 我发现了这一点 我在网上进行了研究 但没有找到任何关于 运算符如果不在控制语句中实际上如何工作的信息 有谁知道它是如何工作的 这与 if window localStorage window
  • 在两个数字之间设置 UILabel 文本动画?

    我是 iPhone 和 Mac 编程新手 之前为 Windows 开发过 我有一个问题 我如何制作动画text的财产UILabel两个数字之间 例如从5 to 80以 Ease Out 风格 是否可以与CoreAnimation 我已经在谷
  • 最佳性能 + jQuery Ajax + Div 刷新

    有人对 jQuery Ajax 刷新 DIV 的最佳选择有好的建议吗 以下是我想要实现的目标 强调性能优化 左边会有导航 就像Google Facebook一样 右边有内容窗格 DIV 当用户点击每个导航时 内容窗格将相应刷新 而不刷新整个
  • 缩小 DIV 和所有子元素

    我想在我的设计中重新调整部分 HTML 的大小 我需要以动画的形式进行此更改 DIV 本身及其所有内部元素 即图像 段落 锚点等 应该重新调整大小 就像调整具有恒定纵横比的图像大小一样 我认为 该工具应该获取元素的当前高度和宽度并增加 减少
  • UIViewController 作为单例

    我在标签栏应用程序中有一个 UIViewController 我已经从 MainWindow nib 文件添加了控制器 即不是以编程方式 我的问题是如何使我的视图控制器成为单例 解决 Facebook 委托问题 您可能想让您的 Facebo
  • CrudRepository 未从 schema.sql 读取数据

    Setup 我有一个带有简单 Entity Customer 对象和 CustomerRepository 的 spring boot 应用程序 我想用描述的测试数据预加载数据库在我的另一个问题中 https stackoverflow c
  • 无法将类型“int”隐式转换为“ushort”:已显式转换

    我正在尝试将 int 显式转换为 Short 但收到 Cannotimplicy conversion type int to ushort ushort quotient 12 ushort channel 16 我正在使用 Net Mi
  • Apple 帮助创作

    我正在跟进本指南 http developer apple com library mac documentation Carbon Conceptual ProvidingUserAssitAppleHelp authoring help