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];
4

1 に答える 1

3

([cocoa]タグがココアタッチを意味しないと仮定します)

これは、NSButtonが-drawRect:再度呼び出されたときに、テキストを描画するために行った選択を無効にする可能性が高いためです。そのディクショナリで指定した属性をNSAttributedStringに適用し、呼び出しsetAttributedTitle:てスタイルの選択を維持することができます。

テキストレンダリングをよりきめ細かく制御する必要がある場合は、ロジックを編集し-drawRect:てそこに移動するか、必要に応じてNSTextFieldまたはNSTextViewを指定します。

提供したコードの主な問題は、@"System"がフォント名ではないことです。

于 2013-03-09T00:37:34.513 に答える