首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Cocoa中使用NSFontPanel

在Cocoa中使用NSFontPanel
EN

Stack Overflow用户
提问于 2009-09-12 17:46:49
回答 5查看 4.6K关注 0票数 7

我尝试使用NSFontPanel来允许用户更改应用程序范围内的字体设置。它的工作原理是这样的:用户点击一个按钮,一个字体面板弹出,他们选择一个字体和大小,他们的选择是持久的。

以下代码显示了该面板:

代码语言:javascript
复制
- (IBAction)showFontMenu:(id)sender {
    NSFontManager *fontManager = [NSFontManager sharedFontManager];
    [fontManager setDelegate:self];

    NSFontPanel *fontPanel = [fontManager fontPanel:YES];
    [fontPanel makeKeyAndOrderFront:sender];
}

文档似乎建议在字体更改时调用changeFont:(Id)发送器方法;在我的例子中没有发生这种情况。

代码语言:javascript
复制
- (void)changeFont:(id)sender {
    // blah
}

你知道我可能做错了什么吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-09-12 17:54:30

您在其上定义了-changeFont:的对象必须是响应器链中的第一个响应器或其上方。您还没有指定在何处定义该方法,但我假设它位于不在响应器链中的控制器对象上。

票数 2
EN

Stack Overflow用户

发布于 2011-09-04 06:00:02

包括以下内容:

代码语言:javascript
复制
[fontManager setTarget:self];
票数 9
EN

Stack Overflow用户

发布于 2009-09-13 02:08:12

NSFontManager的委托主要用于过滤它通过-fontManager:willIncludeFont:提供给字体面板的字体。

正如kperryua提到的,-changeFont:被发送到响应器链上。启动字体菜单的按钮或其封闭视图可能是放置-changeFont:响应器的好地方。

您可能会发现Font Handling指南比Font Panel指南稍微有用一些。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1415716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档