gpt4 book ai didi

objective-c - 检测 NSColorWell 的更改选择

转载 作者:太空狗 更新时间:2023-10-30 04:01:26 26 4
gpt4 key购买 nike

我一直在研究如何在我的应用程序中使用 NSColorWell,但似乎没有太多关于它的文档。

有没有办法将颜色选择器(例如 NSColorWell/NSColorPanel)直接嵌入到我的 View 中?单击井时,它总是会出现一个新的颜色选择窗口。这不能以某种方式嵌入吗?

我有一个自定义的 NSButton 类,我将我的 NSColorWell 中的颜色传递给该类。为此,我必须让用户选择一种颜色,然后单击一个按钮将这种颜色发送到我的自定义类。有没有一种方法可以简单地检测何时直接从颜色选择器中选择了新颜色?

最佳答案

对于问题 1,不,这是 NSColorWell 的系统行为。不喜欢?自己制作。

问题 2 有两种可能的解决方案。

方法 1:将颜色井中的 Action 连接到 IB 中的对象,并通过类中的导出读取颜色井的颜色。孔中的任何颜色变化都会向您选择的选择器发送一条消息。

方法二:在color属性中添加一个自己的对象作为观察者

[colorwell addObserver:self forKeyPath:@"color" options:0 context:NULL];

然后执行

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

任何颜色变化都会触发该方法。

请务必在dealloc 或其他分解方法中与颜色井分离:

[colorwell removeObserver:self forKeyPath:@"color"]

也有一种方法可以使用绑定(bind)来实现,但这两种方法都可以。

关于objective-c - 检测 NSColorWell 的更改选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6762052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com