第一响应者的麻烦

时间:2011-02-05 09:34:42

标签: objective-c cocoa macos fonts interface-builder

我在基于文档的应用程序(即Bold,Italic等)中实现一些快捷方式时遇到了一些麻烦:

Connecting Menu Items in Document Based Applications

问题是所描述的方法将实际的'Bold'菜单项与Font Manager断开连接,并将其替换为我创建的操作(在本例中为boldIt)。因为只能有一个已发送的动作,所以它被替换,而不是添加。我怎么能克服这个?很沮丧。如果有人可以帮助我,我将非常感激。

扎克

1 个答案:

答案 0 :(得分:1)

由于您无法使用菜单触发两个操作,因此有两种方法可以解决此问题:

1)当boldIt:动作完成后,NSFontManager动作会调用boldIt:中的相应方法。这里的缺点是,无论调用addFontTrait:,还需要了解字体管理器。

2)子类NSFontManager并覆盖[super addFontTrait:sender]以在选择“粗体”时包含您想要的行为,然后使用{{1}}在超类上调用原始方法。