2013-03-09 27 views
0

此代碼不繪製白色文字,爲什麼?這段代碼爲什麼不畫白色文字?

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

然後它畫什麼顏色? – CodaFi 2013-03-09 00:33:06

+0

什麼是textRect? – 2013-03-09 00:33:48

+0

它繪製標準黑色 – rokstar 2013-03-09 00:43:06

回答

3

(假設[可可]標籤並不意味着可可觸摸)

這是因爲NSButton很可能是壓倒一切的,你所做的繪製它的文本選擇中時,它的-drawRect:被再次調用。您可以將您在該字典中給出的屬性應用於NSAttributedString,並致電setAttributedTitle:以保持您的風格選擇。

如果您需要對文本渲染進行更細粒度的控制,請編輯並將邏輯移動到-drawRect:(如果它尚未存在),或者根據需要提供NSTextField或NSTextView。

您提供的代碼的主要問題是@「系統」不是字體名稱。

+0

按鈕不是NSButton,它是我自己的類。我正在繪製簡單的NSView! – rokstar 2013-03-09 00:42:02

+1

那麼爲什麼你有一個名爲按鈕的變量?爲什麼heck不是'-drawRect:'中的代碼? – CodaFi 2013-03-09 00:46:38

+0

這段代碼就在那裏,在drawRect中。向我展示如何在drawRect中繪製彩色文本的不同方式? – rokstar 2013-03-09 00:54:52

相關問題