2011-08-16 12 views
8

क्या यह जांचने का कोई तरीका है कि NSWindow दिखाई दे रहा है या नहीं? मेरे ऐप की पहली विंडो दिखाई देने के बाद मैं एक शीट नियंत्रक प्रदर्शित करना चाहता हूं (10.7 पर एनीमेशन समाप्त हो गया है और उपयोगकर्ता विंडो देख सकता है!)। अगर मैं सिर्फ windowDidLoad में शीट दिखाता हूं, तो इसके परिणामस्वरूप एक बेवकूफ दिखने वाली एनीमेशन (चादर रोलिंग आउट, पीछे से खिड़की से बाहर निकलने वाली खिड़की) होती है। मुझे पता है कि NSWindowDelegate दो विधियों को प्रदान करता है जिन्हें एक विंडो या तो मुख्य विंडो या मुख्य विंडो बनने पर लागू किया जाता है, हालांकि, इसका मतलब यह नहीं है कि उस समय खिड़की पहले से ही पूरी तरह से दिखाई दे रही है। यह शेर पर और भी ध्यान देने योग्य है जहां खिड़कियां इस बेवकूफ एनीमेशन के साथ पॉप अप करती हैं।यह जांचने के लिए कि कोई NSWindow दिखाई दे रहा है

+0

मैंने सोचा था कि जब खिड़की एनिमेट समाप्त हो गया मैं कुछ अधिसूचना के बारे में पढ़ा था स्क्रीन पर, लेकिन अब मुझे यह नहीं मिल रहा है ... – jtbandes

उत्तर

24

मैं कुछ इस तरह के लिए जाना होगा:

if ([myWindow isVisible]) { 
    // Do stuff 
} 

या जब परिवर्तन होता है इस कुंजी पथ के लिए एक एक पर्यवेक्षक अधिसूचित किया जाना है।

+0

मुझे लगता है कि मेरे लिए थोड़ी देर सोने का समय है, मैंने एनएसविंडो दस्तावेज की खोज इस तरह के एक समारोह की तलाश में 30 मिनट के लिए की थी और 100% यकीन था कि ऐसा कुछ ऐसा था अस्तित्व में नहीं है आपका बहुत बहुत धन्यवाद! – JustSid

+3

@ जस्टसिड - मुझे लगता है कि किसी समस्या पर पीसने में शायद ही कभी मदद मिलती है। अगले दिन एक ब्रेक और ताजा देखो अक्सर :)। – PeyloW

1

इसके लायक होने के लिए, आप खिड़की से भी बांध सकते हैं। दृश्यमान संपत्ति। एक्सकोड 4 आप पर चिल्ला सकता है, कह रहा है कि यह एक बाध्यकारी संपत्ति नहीं है, लेकिन यह काम करेगा।

यह उपयोगी हो सकता है यदि आप खिड़की दिखाई दे रहे हैं, साथ ही साथ अन्य दृष्टिकोणों के आधार पर NSStatusItem को सक्षम/अक्षम/अक्षम करने का प्रयास कर रहे हैं।

यानी इंटरफ़ेस बिल्डर में:

  • बाध्य करने के लिए: अनुप्रयोग प्रतिनिधि
  • मॉडल कुंजी पथ: self.window.visible
संबंधित मुद्दे

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