Как определить последний цвет NSColorWell, выбранный в какао

Есть ли способ определить последний выбранный цвет NSColorWell?

До сих пор я создавал NSColorWell с действием и нацеливался программно, поэтому, сколько раз я менял цвет, этот метод вызывается столько раз. Итак, я хочу определить последний выбранный цвет NSColorWell.


person PR Singh    schedule 03.03.2014    source источник
comment
Итак, на самом деле вы запрашиваете текущий выбор, верно?   -  person Jay    schedule 03.03.2014


Ответы (1)


Категория NSColorPanelResponderMethod (неофициальный протокол) в NSObject реализует метод с именем changeColor:. Таким образом, вы можете переопределить этот метод внутри своего класса, чтобы обнаружить изменения цвета для NSColorWell.

@interface MyClass:NSObject 
 @property(nonatomic, strong) NSColor *lastColor;
@end

@implementation MyClass
  - (void)colorChanged:(id)sender{
    NSLog(@"Last color %@", lastColor);
    NSColor *newColor = [sender color];
    NSLog(@"NSColorWell changed color %@", [sender color]);
  }
@end

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

person Sandeep    schedule 03.03.2014
comment
Я хочу определить только последний цвет? Когда я отпускаю мышь на цвете?? - person PR Singh; 03.03.2014
comment
Таким образом, метод colorChanged: запускается каждый раз, когда вы меняете цвет, затем вы можете сохранить значение в каком-либо свойстве, чтобы узнать последнее изменение. - person Sandeep; 03.03.2014