Как контролировать цвет текста NSTextField, когда он отображает маркер-заполнитель? - PullRequest
5 голосов
/ 16 ноября 2009

Когда NSTextField (Label) привязан к выделению контроллера с привязками, и я указал значения местозаполнителя для маркера множественных значений, без маркера выделения и т. Д., Он рисует текст серым цветом, который плохо отображается на темный фон.

Есть ли способ изменить цвет текста, используемый для отображения текста заполнителя?

Ответы [ 2 ]

15 голосов
/ 16 ноября 2009

Используйте атрибутивную строку, указав нужный вам цвет, например:

NSDictionary *blueDict = [NSDictionary dictionaryWithObject: [NSColor blueColor]
                        forKey: NSForegroundColorAttributeName];
NSAttributedString *blueString = [[[NSAttributedString alloc] initWithString: @"test"
                                attributes: blueDict] autorelease];

Затем вы можете установить строку атрибута напрямую:

[[field cell] setPlaceholderAttributedString: blueString];

или сделайте это через привязку, например:

[field2 bind: @"value" toObject: [NSUserDefaults standardUserDefaults]
        withKeyPath: @"foo"
        options: [NSDictionary dictionaryWithObject: blueString forKey: NSNullPlaceholderBindingOption]];
0 голосов
/ 16 ноября 2009

вы можете попробовать сделать свой собственный "держатель карты". Я имею в виду, что вы можете показывать метку над вашим текстовым полем с любыми текстовыми патаметерами, которые вы хотите.

...