Всякий раз, когда я отключаю NSTextField, текст теряет свой цвет и становится серым. Как я могу отключить текстовое поле и сохранить цвет текста? В моей конкретной ситуации некоторые слова окрашены в красный цвет. Я бы хотел, чтобы эти слова оставались красными, когда я отключаю.
Отключить NSTextField без изменения цвета многоцветного текста
Ответы (2)
Для этого вам нужно создать подкласс NSTextField
. См. это Тема CocoaBuilder:
- (void)setEnabled:(BOOL)flag
{
[super setEnabled:flag];
if (!flag) {
[self setTextColor:[NSColor secondarySelectedControlColor]];
} else {
[self setTextColor:[NSColor controlTextColor]];
}
}
person
Droppy
schedule
02.05.2014
Спасибо за ваш ответ! Я думаю, что мне нужно перефразировать свой вопрос, чтобы быть более точным в моей ситуации. Мой текст имеет несколько цветов ... например, некоторые слова красные, и я бы хотел, чтобы они и только они оставались красными, когда я отключаю.
- person user2320861; 02.05.2014
Я обнаружил, что во время редактирования текста я мог устанавливать цвета и все такое, но проблема с потерей цвета текста возникала, даже когда я не отключал текстовое поле. Я забыл разрешить моему NSTextField разрешать форматированный текст. Теперь текстовое поле сохраняет все цвета, даже когда я setEditable:NO
.
person
user2320861
schedule
03.05.2014
controlTextDidChange
и окрашиваю слово в красный цвет, если оно неверно. В какой-то момент я закончил вводить текст, и это текстовое поле не следует повторно посещать. Поэтому я хочу отключить его, но он все равно должен быть виден с моей динамической окраской, чтобы я мог оглянуться назад и посмотреть, какие слова я ошибся. - person user2320861   schedule 02.05.2014