OSbar Statusbar app using Swift

I am trying to write a status bar application for OSX using swift. The equivalent code in Objective-C seems to work and display the status bar menu, but the following code does not:

import Cocoa class AppDelegate: NSObject, NSApplicationDelegate { @IBOutlet var statusMenu: NSMenu func applicationDidFinishLaunching(aNotification: NSNotification?) { // Insert code here to initialize your application } func applicationWillTerminate(aNotification: NSNotification?) { // Insert code here to tear down your application } override func awakeFromNib() { var statusBar = NSStatusBar.systemStatusBar() var statusBarItem = statusBar.statusItemWithLength(CGFloat(NSVariableStatusItemLength)) statusBarItem.menu = statusMenu statusBarItem.title = "TestApp" } } 
+6
source share
1 answer

Your statusBarItem var goes out of scope after the awakeFromNib() call completes, you need to keep a reference to it. Try something like this:

 import Cocoa class AppDelegate: NSObject, NSApplicationDelegate { @IBOutlet var statusMenu: NSMenu var statusBarItem : NSStatusItem? override func awakeFromNib() { var statusBar = NSStatusBar.systemStatusBar() statusBarItem = statusBar.statusItemWithLength(CGFloat(NSVariableStatusItemLength)) statusBarItem!.menu = statusMenu statusBarItem!.title = "TestApp" } } 
+11
source

Source: https://habr.com/ru/post/970609/


All Articles