我尝试使用NSFontPanel来允许用户更改应用程序范围内的字体设置。它的工作原理是这样的:用户点击一个按钮,一个字体面板弹出,他们选择一个字体和大小,他们的选择是持久的。
以下代码显示了该面板:
- (IBAction)showFontMenu:(id)sender {
NSFontManager *fontManager = [NSFontManager sharedFontManager];
[fontManager setDelegate:self];
NSFontPanel *fontPanel = [fontManager fontPanel:YES];
[fontPanel makeKeyAndOrderFront:sender];
}文档似乎建议在字体更改时调用changeFont:(Id)发送器方法;在我的例子中没有发生这种情况。
- (void)changeFont:(id)sender {
// blah
}你知道我可能做错了什么吗?
发布于 2009-09-12 17:54:30
您在其上定义了-changeFont:的对象必须是响应器链中的第一个响应器或其上方。您还没有指定在何处定义该方法,但我假设它位于不在响应器链中的控制器对象上。
发布于 2011-09-04 06:00:02
包括以下内容:
[fontManager setTarget:self];发布于 2009-09-13 02:08:12
NSFontManager的委托主要用于过滤它通过-fontManager:willIncludeFont:提供给字体面板的字体。
正如kperryua提到的,-changeFont:被发送到响应器链上。启动字体菜单的按钮或其封闭视图可能是放置-changeFont:响应器的好地方。
您可能会发现Font Handling指南比Font Panel指南稍微有用一些。
https://stackoverflow.com/questions/1415716
复制相似问题