我有一个在我的首选项笔尖中使用的内容视图。我使用一种方法在我的应用程序中更改 NSTextView 的字体。
此内容视图必须设置为 firstResponder 才能从我的 changeTextFont: 方法中获取消息,但由于它不是一个窗口,因此它没有 firstResponder。结果,它根本不会改变文本字体......有人有解决方法吗?
谢谢一群人。
我有一个在我的首选项笔尖中使用的内容视图。我使用一种方法在我的应用程序中更改 NSTextView 的字体。
此内容视图必须设置为 firstResponder 才能从我的 changeTextFont: 方法中获取消息,但由于它不是一个窗口,因此它没有 firstResponder。结果,它根本不会改变文本字体......有人有解决方法吗?
谢谢一群人。
[self window]
我可以在不指定为第一响应者的情况下使示例项目工作。我所做的是:
中(void)changeTextFont:(id)sender
,我替换了语句:
[[self window] makeFirstResponder:[self window]];
带线:
[[NSFontManager sharedFontManager] setAction:@selector(changeMyFont:)];
[[NSFontManager sharedFontManager] setTarget:self]; //-- this seems to be not mandatory, but I mention it because your case could be different
我重命名changeFont:
为changeMyFont:
:
- (void)changeMyFont:(id)sender
{
通过这些更改,字体在示例内容视图中正确更新。
我不知道它是否适合您,因为最终您会尝试在不同的上下文中使用此代码,但我希望它会。我建议您首先尝试修改示例项目,以便您对我的解决方案充满信心,然后将其移至您的项目以检查它是否也可以在那里工作。