Как изменить действие NSColorWell?

Я могу использовать NSColorWell как кнопку, чтобы изменить цвет выделенного текста. Поскольку NSColorWell является объектом NSControl, у него есть цель и действие. Я предполагаю, что действие реализует код для изменения цвета выделенного текста в NSTextView. Где я могу найти этот код для действия NSColorWell? Я хотел бы изменить его, чтобы я мог использовать NSColorWell для изменения фона выделенного текста и, в конечном итоге, иметь на панели инструментов две кнопки NSColorWell: одну для изменения цвета переднего плана текста и вторую для цвета фона текста.


person VYT    schedule 15.11.2016    source источник


Ответы (1)


NSColorWell — это просто прямоугольный элемент управления для изменения цвета.

  • Вы можете либо создать IBAction, либо связать его с действием области цвета в Инспекторе подключений (⌥⌘6) в Interface Builder.

    @IBAction func changeColor(_ sender : NSColorWell)
    {
       let color = sender.color
       // do something with the color
    }
    
  • Или привяжите value в Bindings Inspector (⌥⌘7) Interface Builder к свойству dynamic, в этом примере для области цвета будет установлено значение по умолчанию зеленого цвета.

    dynamic var color : NSColor = .green {
       didSet {
         // do something with the color
       }
    }
    
person vadian    schedule 15.11.2016
comment
Хорошо, если я правильно понимаю, вы предлагаете использовать цвет из NSColorWell, чтобы изменить цвет переднего плана или фона строки с атрибутами, поместив стандартный код для этого в IBAction changeColor ? Но перестанет ли он менять цвет переднего плана, когда я изменю цвет фона. Теперь он автоматически меняет цвет переднего плана, когда я нажимаю NSColorWell. - person VYT; 15.11.2016
comment
Спасибо за ответ! Чтобы избежать автоматического окрашивания текста, по умолчанию в IB галочка использует панель шрифтов должна быть выключена (или для использованияFontPanel должно быть установлено значение false в viewDidLoad()) - person VYT; 16.11.2016