現在、Mac OS の NSStatusBarItems アイコンに追加されるデフォルトの鮮やかさを減らそうとしています。これは、allowsVibrancy 属性を変更することで実現できることを理解しています。ただし、これは NSView では読み取り専用であるため、そのクラスを拡張して、allowsVibrancy メソッドをオーバーライドする必要があります。
class NoneVibrancyView: NSView
{
override var allowsVibrancy: Bool { return false }
}
現在、私のアイコンは、allowsVibrancy が有効になっているように見えます。NSView を正しく置き換えているかどうか疑問に思っています。これが私のコードです:
let statusBar = NSStatusBar.system
statusBarItem = statusBar.statusItem(withLength: NSStatusItem.squareLength)
let noneVibrancyView = NoneVibrancyView(frame: statusBarItem.button!.frame)
statusBarItem.button?.addSubview(noneVibrancyView)
statusBarItem.button?.title = ""
let statusBarMenu = NSMenu(title: "My Status Menu Bar")
statusBarItem.menu = statusBarMenu