2015-06-16 7 views
0

У меня установлена ​​NSColorPanel, которую я использую, чтобы изменить цвет фона окна. В окне есть также NSTextView с некоторым текстом. Проблема заключается в том, что когда я меняю цвет фона, цвет текста меняется на одно и то же. Я пробовал найти способы предотвратить это, но без успеха.Как отключить цвет текста в NSTextView?

+1

Как вы пытались предотвратить это? Является ли ваш textview первым ответчиком? Согласно документам 'NSColorPanel' на [changeColor:] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSColorPanel_Class/#//apple_ref/occ/instm/NSObject/changeColor :), он будет отправлен firstResponder, поэтому ваш текст может поймать это событие. –

+0

@ Sega-Zero, Да, текст - первый ответчик. – user3338161

+0

Ну, тогда попробуйте установить другой элемент управления как firstResponder временно или подкласс вашего текстового представления с помощью пустого метода «changeColor:». –

ответ

1

Переопределить метод NSTextViewchangeColor: и в этом методе, сохранить выход к backgeoundView и вместо того, чтобы изменить свой цвет в TextView посылают его на выходе:

IBOutlet NSView *changeColorTarget; 

...

- (IBAction)changeColor:(id)sender { 
    if(self.changeColorTarget) {  
     [NSApp sendAction:@selector(changeColor:) target:self.changeColorTarget forEvent:nil]; 
    } else { 
     [super changeColor:sender];  
    } 
} 

-> Таким образом, текстовое изображение сохраняет свою первоначальную функциональность, за исключением случаев, когда вы устанавливаете розетку