Xcode 如何改变NSColorWell的行为?

Xcode 如何改变NSColorWell的行为?,xcode,swift3,nscolorwell,Xcode,Swift3,Nscolorwell,我可以使用NSColorWell as按钮更改所选文本的颜色。由于NSColorWell是NSControl的对象,因此它有目标和行动。我猜,操作是实现代码来更改NSTextView中选定文本的颜色。在哪里可以找到NSColorWell操作的代码?我想改变它,我可以使用NSColorWell更改所选文本的背景,并最终在工具栏中有两个NSColorWell按钮:一个用于更改文本的前景色,另一个用于更改文本的背景色。NSColorWell只是一个用于更改颜色的矩形控件 您可以创建一个iAction

我可以使用NSColorWell as按钮更改所选文本的颜色。由于NSColorWell是NSControl的对象,因此它有目标和行动。我猜,操作是实现代码来更改NSTextView中选定文本的颜色。在哪里可以找到NSColorWell操作的代码?我想改变它,我可以使用NSColorWell更改所选文本的背景,并最终在工具栏中有两个NSColorWell按钮:一个用于更改文本的前景色,另一个用于更改文本的背景色。

NSColorWell
只是一个用于更改颜色的矩形控件

  • 您可以创建一个
    iAction
    ,并将其连接到Connections Inspector中颜色井的动作(⌥⌘6) 界面生成器的设计

    @IBAction func changeColor(_ sender : NSColorWell)
    {
       let color = sender.color
       // do something with the color
    }
    
  • 或者绑定绑定检查器中的
    (⌥⌘7) 将Interface Builder的属性设置为
    动态
    属性,此示例将颜色井设置为默认值绿色

    dynamic var color : NSColor = .green {
       didSet {
         // do something with the color
       }
    }
    

好的,如果我理解正确,您建议使用NSColorWell的颜色,通过将属性字符串的标准代码放入iAction changeColor来更改属性字符串的前景色或背景色?但是,当我改变背景色时,它会停止改变前景色吗。现在当我按下NSColorWell时,它会自动改变前景色。谢谢你的回答!为避免自动文本着色,默认情况下,在IB中,应禁用“使用字体面板”复选框(或在viewDidLoad()中将“使用字体面板”设置为false)