2011-10-12 9 views
8

मेरे पास एक ऐप है जो NSStatusItem का उपयोग करता है। छोटी स्क्रीन पर स्टेटस बार में ज्यादा जगह नहीं है। जब कोई उपयोगकर्ता कई मेनू आइटम वाले एप्लिकेशन पर स्विच करता है, तो मेरा स्टेटस आइटम छुपा रहता है। क्या इस बारे में अधिसूचित होने का कोई तरीका है?जब NSStatusItem छिपा हुआ है, तब से अवगत कराया जा रहा है

क्या मैं अब तक की कोशिश की:

  • मैं जाँच की यदि कोई NSNotification निकाल दिया जाता है: नहीं
  • मैं अगर statusView दृश्य पदानुक्रम से निकाल दिया जाता जाँच: नहीं
  • मैं isHiddenOrHasHiddenAncestor जाँच: नहीं

यहां कोड है जिसका उपयोग मैं स्थिति आइटम बनाने के लिए करता हूं।

self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; 
MyStatusView *maView = [[[MyStatusView alloc] initWithFrame:CGRectMake(0, 0, 50, 22)] autorelease]; 
[statusItem setTitle:@"Ma Status Item"]; 
[statusItem setView:maView]; 
+0

क्या आप जांच सकते हैं कि स्क्रीन पर चलने के बाद इसकी view.center संपत्ति बदलती है या नहीं? आप एक प्रकार की कॉलबैक स्थापित करने के लिए केंद्र संपत्ति में केवीओ अधिसूचना जोड़ सकते हैं, लेकिन मुझे नहीं पता कि यह स्थिति के लिए काम करेगा या नहीं। – Suz

+0

मेरे पास एक टाइमर चल रहा है जो विंडो के सापेक्ष सीमाओं को लॉग करता है। बदल नहीं रहा ... ऐसा लगता है जैसे माविव अपनी खिड़की में है (एनएसविंडो> एनएसएनक्स्टस्टेपफ्रेम> एमवी व्यू)। कोशिश करेंगे और देखेंगे कि यह स्क्रीन बंद हो गया है या नहीं। – stigi

+0

विंडो सीमाएं अभी भी स्क्रीन पर हैं। खिड़की किसी और चीज से अधिक हो सकती है। इस बारे में नहीं पता कि यह कैसे जांचें .. – stigi

उत्तर

1

यह एहसास है कि जब एक स्थिति आइटम छिपा हुआ है, अपनी खिड़की पृष्ठभूमि में ले जाया जाएगा आप का बहुत स्मार्ट है।

अब अधिसूचना के लिए आप देख रहे हैं: NSWindowDidResignKeyNotification (या NSWindowDidResignMainNotification अपने आवेदन के संदर्भ के आधार पर)

एक महत्वपूर्ण खिड़की और एक मुख्य विंडो के बीच अंतर के बारे में स्पष्ट विवरण के लिए, this देखना ।

+0

यह उत्तर काम नहीं करता है, -1, उस प्रकार की कोई अधिसूचना नहीं भेजी जाती है जब एक NSStatusItem छिपा हुआ है – Vervious

+0

-1: मैं दूसरा @ अविश्वसनीय - यह उत्तर बेकार से भी बदतर है, इससे मुझे अपना समय बर्बाद करने की कोशिश करनी पड़ी काम। – ArtOfWarfare

संबंधित मुद्दे