2011-11-16 19 views
5

ठीक है मेरे पास एक "छुपाएं" मेनू आइटम के साथ एक स्टेटस मेनू एप्लिकेशन है।ओएसएक्स: स्टेटस बार आइटम को "अनदेखा" कैसे करें?

पर क्लिक करने से "छिपाएँ" कहता है:

[[NSStatusBar systemStatusBar] removeStatusItem:statusItem] 

जो निश्चित रूप से स्थिति पट्टी से अपने आवेदन भले ही यह अभी भी चल रहा है निकाल देता है।

मैं चाहता हूं कि मेरा एप्लिकेशन सिस्टम स्टेटस बार में फिर से जोड़ा जाए जब उपयोगकर्ता एप्लिकेशन फ़ोल्डर में मेरा एप्लिकेशन "खोलता" हो। समस्या यह है कि मैं कोड के टुकड़े को "एप्लिकेशनडिडफिनिश लॉन्चिंग" के अंदर करने के लिए नहीं डाल सकता क्योंकि एप्लिकेशन पहले से ही खुला है। तो मुझे क्या करना चाहिए?

+0

इस पोस्ट मदद करता है: http://stackoverflow.com/questions/843379/how-do-you-toggle-the-status-item-in -मेन्यूबार-ऑन-एंड-ऑफ-ऑफ़-ए-चेकबॉक्स – petert

उत्तर

2

आप -applicationDidBecomeActive: का उपयोग कर सकते हैं, हालांकि आपको उन मामलों के बीच अंतर करने की आवश्यकता है जहां एप्लिकेशन छुपाए जाने के बाद सक्रिय हो जाता है, और यह उपयोगकर्ता सक्रिय होने के बाद सक्रिय हो गया है जब उपयोगकर्ता आपके छुपाए बिना किसी भिन्न ऐप पर स्विच हो जाता है।

+0

धन्यवाद। यह काम करता हैं :) – hollow7

0

क्या आप प्रोग्राम स्थिति को प्रोग्रामेटिक रूप से प्रारंभ नहीं कर सकते हैं? यह लगता है यहां तक ​​कि applicationDidFinishLaunching के बाहर, मेरे लिए काम करने के लिए:

// Install status item into the menu bar 
myStatusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength]; 
NSImage *statusImage = [NSImage imageNamed:@"Status.png"]; 
[myStatusItem setImage:statusImage]; 
NSImage *altStatusImage = [NSImage imageNamed:@"StatusHighlighted"]; 
[myStatusItem setAlternateImage:altStatusImage]; 
[myStatusItem setHighlightMode:YES]; 
[myStatusItem setMenu:self.myStatusMenu]; 
[self.myStatusMenuItem setTitle:@"Show"]; 
संबंधित मुद्दे