更改NSStatusBar字体的颜色和大小

问题描述

我在项目(macOS,Xcode 10,Cocoa,Swift)中有一个自定义的状态栏。

我想更改显示在状态中的字体和文本的颜色。

@NSApplicationMain
class AppDelegate: NSObject,NSApplicationDelegate {

    @IBOutlet private weak var mainMenu: NSMenu! 
    @IBOutlet private weak var quitMenuItem: NSMenuItem! 
    .....code....
    private let statusItem = NsstatusBar.system.statusItem(withLength: NsstatusItem.variableLength)

     
    // MARK: NSApplicationDelegate
    func applicationDidFinishLaunching(_ aNotification: Notification) {
        .....code....
        // Set the main menu
        statusItem.menu = mainMenu
        .....code....
    }

解决方法

感谢瓦迪安,我在这里给出了答案。 (快速4) 希望对以后的读者有所帮助。

@NSApplicationMain
class AppDelegate: NSObject,NSApplicationDelegate {

    @IBOutlet private weak var mainMenu: NSMenu! 
    @IBOutlet private weak var quitMenuItem: NSMenuItem! 
    .....code....
    private let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)

     
    // MARK: NSApplicationDelegate
    func applicationDidFinishLaunching(_ aNotification: Notification) {
        .....code....
        // Set the main menu
        statusItem.menu = mainMenu
        
        // change color
        let myString = "My Button Title"
        let myAttribute = [ NSAttributedString.Key.foregroundColor: NSColor.blue ]
        let myAttrString = NSAttributedString(string: myString,attributes: myAttribute)
        statusItem.button?.attributedTitle = myAttrString

    }