1

背景色を変更したいNSButtonsStoryboard で作成しました。SO と Google を検索しましたが、私のプロジェクトや単純なテスト プロジェクトで実際に機能するソリューションはありません。私はもう試した:

  1. button.layer.backgroundColor の設定 (QuartzCore のインポートと設定の有無を含むwantsLayer)。
  2. NSButton から NSButtonCell を取得し、背景色を変更します。縁あり、縁なし、透明などでこれを試しました。背景色は変わりません。正方形からグラデーションに変更しようとしましたが、うまくいきません。
4

1 に答える 1

2

これは macOS のバグに違いありません。1 つの EMPTY オーバーライドを持つ EMPTY クラスでサブクラス化するだけで、NSButtonCell を backgroundColor に応答させることができます。

class ColorButtonCell: NSButtonCell {
    override func draw(withFrame cellFrame: NSRect, in controlView: NSView) {
        super.draw(withFrame: cellFrame, in: controlView)
    }
}

このサブクラスを使用すると、すべて期待どおりに機能します。

于 2016-11-13T18:21:03.050 に答える