我有一些代碼可以打開NSColorPanel。我怎麼能夠檢測到顏色改變後再運行回調?檢測NSColorPanel中的顏色變化
NSColorPanel *colorPanel = [NSColorPanel sharedColorPanel];
[colorPanel orderFront:nil];
在此先感謝。
我有一些代碼可以打開NSColorPanel。我怎麼能夠檢測到顏色改變後再運行回調?檢測NSColorPanel中的顏色變化
NSColorPanel *colorPanel = [NSColorPanel sharedColorPanel];
[colorPanel orderFront:nil];
在此先感謝。
您是否嘗試過使用KVO?您可以從期望的控制器觀察colorPanel
;如果發生變化,您將收到回電:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
有一種方法- (void)changeColor:(id)sender
。當用戶在NSColorPanel對象中選擇一種顏色時,它會發送給第一個響應者。您可以在任何需要響應顏色變化的響應者中覆蓋此方法。可能是,它可以幫助。
你應該使用目標的行動:
NSColorPanel *cp = [NSColorPanel sharedColorPanel];
[cp setTarget:self];
[cp setAction:@selector(colorUpdate:)];
和定義的操作是這樣的:
-(void)colorUpdate:(NSColorPanel*)colorPanel{
NSColor* theColor = colorPanel.color;
....your code
}
我已經試過了,但它並沒有以往任何時候都顯得打電話。 – consindo 2012-01-10 09:37:41
這將被設置爲正確的答案。 – 2013-01-14 00:23:41