objective-c - 急救人员遇到问题

标签 objective-c cocoa macos fonts interface-builder

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

Connecting Menu Items in Document Based Applications

问题是所描述的方法断开了实际的“Bold”菜单项与字体管理器的连接,并将其替换为我创建的操作(在本例中为 boldIt)。因为只能有一个发送的 Action ,所以它被替换,而不是添加。我怎样才能克服这个问题?非常令人沮丧。如果有人可以帮助我,我将不胜感激。

扎克

最佳答案

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

1) 让您的 boldIt: 操作在完成工作后调用 NSFontManager 中的适当方法。这里的缺点是无论调用什么 boldIt: 都需要了解字体管理器。

2) 子类 NSFontManager 并重写 addFontTrait: 以包含选择“粗体”时所需的行为,然后使用 [super addFontTrait:sender] 调用父类(super class)上的原始方法.

关于objective-c - 急救人员遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4906110/

相关文章:

cocoa - 当启用 NSArrayController“自动重新排列内容”时,插入和编辑新对象后键盘焦点丢失

c++ - 将 C++ 项目与 Qt 项目合并时出现的问题

objective-c - 如何用 Objective-C/cocoa 编写 RPG

objective-c - UIViewController: [super init] 调用 [self initWithNibName bundle:]

objective-c - 当我将图像保存到文件时,保存的方向是错误的

cocoa - NSTableColumn 中突出显示的文本颜色

cocoa - 本地存储数据

macos - Mac OS X 10.4+ 上的 Bash 配置

java - 导入 .dat 文件 Java

objective-c - 从数组 objective-c 中提取特定键