为什么这段代码不能绘制白色文字?

时间:2013-03-09 00:29:49

标签: objective-c cocoa

此代码不会绘制白色文本,为什么?

NSMutableParagraphStyle* style = [[NSMutableParagraphStyle alloc] init];
[style setAlignment:NSCenterTextAlignment];
NSFont *font = [NSFont fontWithName:@"System" size:13];
NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:style, NSParagraphStyleAttributeName, font, NSFontAttributeName, [NSColor whiteColor], NSForegroundColorAttributeName, nil];

[button.title drawInRect:textRect withAttributes:attrs];

1 个答案:

答案 0 :(得分:3)

(假设[cocoa]标签不代表可可触摸)

这是因为NSButton可能会覆盖你在再次调用-drawRect:时绘制文本的选择。您可以将您在该字典中给出的属性应用于NSAttributedString并调用setAttributedTitle:以保持您的风格选择。

如果您需要对文本呈现进行更细粒度的控制,请编辑并将逻辑移动到-drawRect:(如果它尚不存在),或者根据需要提供NSTextField或NSTextView。

您提供的代码的主要问题是@“System”不是字体名称。