【问题标题】:Set menubar icon from ViewController从 ViewController 设置菜单栏图标
【发布时间】:2020-05-19 16:28:16
【问题描述】:

如何从另一个 ViewController 更改 MacOS 应用程序的菜单栏图标?

  • AppDelegate.swift(初始化菜单栏图标)
  • ViewController.swift(尝​​试设置菜单栏图标❌)

我找到了这个,但这并没有改变我的菜单栏图标: Mac: How to save alternate app icon in dock OSX xcode

let image = NSImage.init(named: NSImage.Name(rawValue: "AltAppIcon"))
NSApp.applicationIconImage = image

看到 BOINC 图标在其菜单栏的右下角有一个小的自定义暂停符号/徽章吗?此应用程序的图标发生变化。他们是否会改写该文件的名称并将其更改为“暂停的图标”图像?


更新*

设置菜单栏图标的AppDelegate.swift 函数起作用了:

AppDelegate.swift

func setIcon() {
  let onIcon = NSImage(named: "fv-mini-icon-green")
  statusItem.button?.image = onIcon
}

ViewController.swift

func taskOnIcon() {
  DispatchQueue.main.async(execute: {
    let appDele = NSApplication.shared.delegate as! AppDelegate
    appDele.setIcon()
  })
}

【问题讨论】:

标签: swift xcode appdelegate menubar nsstatusitem


【解决方案1】:

这是一种方法...

class AppDelegate: NSObject, NSApplicationDelegate {
    var statusBarItem: NSStatusItem!

    func applicationDidFinishLaunching(_ aNotification: Notification) {

        let statusBar = NSStatusBar.system
        statusBarItem = statusBar.statusItem(withLength: 16)

        let button = statusBarItem.button
        button?.image = NSImage(named: "fv-mini-icon-green")

    // .. other code here



【讨论】:

    猜你喜欢
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2010-09-13
    • 2010-11-27
    相关资源
    最近更新 更多