2012-01-10 10 views
2

NSColorPanelを開くコードがあります。色が変更されたときを検出してコールバックを実行するにはどうしたらいいですか?NSColorPanelの色の変化を検出します

NSColorPanel *colorPanel = [NSColorPanel sharedColorPanel]; 
[colorPanel orderFront:nil]; 

ありがとうございます。

答えて

0

KVOを試しましたか?希望のコントローラからcolorPanelを見ることができます。変更の場合は、

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
2

- (void)changeColor:(id)senderがあります。ユーザーがNSColorPanelオブジェクトで色を選択すると、最初のレスポンダに送信されます。色の変化に応答する必要があるレスポンダでこのメソッドをオーバーライドすることができます。おそらく、それは助けることができます。

+0

私はそれを試してみたが、今までに呼び出していないようです。 – consindo

+0

これは正解として設定されます。 –

6

あなたはターゲットアクションを使用する必要があります

NSColorPanel *cp = [NSColorPanel sharedColorPanel]; 
[cp setTarget:self]; 
[cp setAction:@selector(colorUpdate:)]; 

をし、このようアクションを定義します。

-(void)colorUpdate:(NSColorPanel*)colorPanel{ 
    NSColor* theColor = colorPanel.color; 
    ....your code 

} 
関連する問題