2014-06-10 6 views
6

का उपयोग कर ओएसएक्स स्टेटसबार ऐप मैं तेजी से ओएसएक्स के लिए स्टेटस बार ऐप लिखने की कोशिश कर रहा हूं। ऑब्जेक्टिव-सी में बराबर कोड काम करने लगता है और एक स्थिति पट्टी मेनू दिखाई देता है, लेकिन निम्नलिखित कोड ऐसा नहीं करता:स्विफ्ट

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" 
    } 

} 
+0

यदि यह काम नहीं करता है, तो यह * क्या करता है? – BergQuester

+0

@BergQuester एप्लिकेशन चलता है और कुछ भी नहीं करता है। अगर मैं LSUIElement को अक्षम करता हूं, तो एक ट्रे/डॉक आइकन दिखाई देता है। –

उत्तर

11

आपका statusBarItem वर awakeFromNib() पूर्ण करता कॉल एक बार क्षेत्र से बाहर जा रहा है, तो आप की जरूरत है इसका संदर्भ रखें। इस तरह कुछ कोशिश करें:

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" 
    } 

} 
+1

देखें http://stackoverflow.com/questions/24294196/os-x-10-10-yosemite-adding-a-menulet/24294589#24294589 – Grimxn