繁体   English   中英

如何在 Mac Catalyst 应用程序中检测颜色面板的颜色变化?

[英]How to detect color panel's color change in Mac Catalyst app?

在 Mac Catalyst 中,有一个显示颜色面板的默认工具栏项。

https://developer.apple.com/documentation/appkit/nstoolbaritem/identifier/1531463-showcolors

它显示得很好,但我找不到从这个颜色面板检测颜色变化的方法。 有谁知道如何做到这一点?

在此处输入图片说明

单击工具栏项时,将显示NSColorPanel的实例。 可以从NSColorPanel.color访问所选颜色,但我们没有对显示的面板的引用。 即使类NSColorPanel对 Mac Catalyst 应用程序也不可见。

幸运的是,在颜色面板中选择颜色时会发布通知 所以,我们需要的只是观察通知以获取对NSColorPanel实例的引用,然后访问其color属性:

NotificationCenter.default.addObserver(forName: .init("NSColorPanelColorDidChangeNotification"), object: nil, queue: nil) { notification in
    let color = (notification.object as? NSObject)?.value(forKey: "color") as? UIColor
    print("Color changed", color)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM