首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在可可中设置nstextfield的字体和颜色?

如何在可可中设置nstextfield的字体和颜色?
EN

Stack Overflow用户
提问于 2015-01-02 19:57:18
回答 1查看 1.9K关注 0票数 1

我想在面板上设置字体,并更改选定的字体。我正在使用NSColorWell打开并选择颜色。对于字体,我可以使用什么?当字体面板关闭时,如何打开字体面板并执行操作?

目前我正在使用

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

- (void)changeFont:(id)sender
{
    font = [sender convertFont:font];
    NSLog(@"%@", font);


}
'

但在chnageFont上,当我更改任何字体或大小时,它就会崩溃。

EN

回答 1

Stack Overflow用户

发布于 2015-01-07 15:03:36

我假设你有连接到ColorWell和textField的插座:

代码语言:javascript
复制
IBOutlet NSColorWell *colorWell;
IBOutlet NSTextField *textfield;

您应该设置有关NSColorPanel的一些内容:

代码语言:javascript
复制
[NSColor setIgnoresAlpha:NO];
[[NSColorPanel sharedColorPanel] setShowsAlpha:YES];

当你打开或关闭一个可能会显示颜色面板的窗口时,你应该确保你周围没有一个颜色面板:

代码语言:javascript
复制
if ([NSColorPanel sharedColorPanelExists])
{
    [[NSColorPanel sharedColorPanel] close];
}

然后,在颜色的IBAction方法中,您可以获得颜色:

代码语言:javascript
复制
NSColor *color;
color = [colorWell color];

然后,您可以使用以下命令设置字体和颜色:

代码语言:javascript
复制
[textField setFont:anNSFont *];
[textField setTextColor:color];

编辑:

我刚刚意识到您也在询问如何从字体面板中获取新字体。

要从字体面板中获取新字体,您的代码应该可以正常工作,除非" font“(旧字体)从未初始化过。如果font为null,则发送者convertFont:font将返回null。

这将打印null:

代码语言:javascript
复制
- (void)changeFont:(id)sender
{
    NSFont *font;

    font = [sender convertFont:font]; // Reset the font

    NSLog(@"%@", font);

}

这将打印一种字体:

代码语言:javascript
复制
- (void)changeFont:(id)sender
{
    NSFont *font = [NSFont fontWithName:@"Helvetica" size:12]; // Initialize the old font

    font = [sender convertFont:font]; // Reset the font

    NSLog(@"%@", font);

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

https://stackoverflow.com/questions/27741829

复制
相关文章

相似问题

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