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
これは正解として設定されます。 –