14

我已经就这个话题提出了几个问题,但还没有真正得到关于如何做到这一点的真正答案(它实际上收到了“风滚草徽章”哈哈)。

我有一个基于文档的应用程序(意味着 Menu.Xib 与 MyDocument.Xib 是分开的)。

假设我想向 MyDocument(主界面)添加一个“粗体”按钮或检查拼写按钮(Menu.xib 中列出的项目(在格式 > 字体等下)。我不知道该怎么做。

任何帮助将不胜感激(如果它有效,我会立即奖励答案,这已经困扰了我几个星期)。

我尝试将字体管理器添加到 MyDocument.Xib 并以这种方式连接,但粗体按钮仅启用,不会禁用。另外,拼写检查等无法通过字体管理器激活。

必须有更好的方法来做到这一点。

Apple 文档非常模糊。

4

1 回答 1

18

这正是 IB 中的 First Responder 对象的用途。它是连接动作的代理对象。发送给它的任何动作消息都将沿着响应者链传递给第一个接受它们的对象。对于基于文档的应用程序,响应者链包括当前文档。因此,要将菜单项连接到您的文档:

  1. 如果需要,将操作添加到 First Responder。您可以从 IB 的检查器窗口执行此操作。
  2. 将动作连接到 First Responder,就好像它是一个普通对象一样。
  3. 在您的文档中实现 action 方法。

如果您需要以编程方式向第一响应者添加消息,请将对象的目标设置为nil.

于 2011-02-04T03:39:19.960 回答