我有一些代码可以打开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