2010-05-12 17 views
13

मैं निम्नलिखित कोड का उपयोग कर एक NSWindow को खोलने के लिए कोशिश कर रहा हूँ:मैं एक NSWindow कैसे खोलूं और विंडो चयनित और फोकस में कैसे रखूं?

NSWindowController *window = [[NSWindowController alloc] initWithWindowNibName:@"MainWindow"]; 
[window showWindow:nil]; 

खिड़की ठीक खोलता है, लेकिन पिछली विंडो अभी भी MainWindow और ध्यान केंद्रित करने में है। मैंने मुख्य विंडो को मजबूर करने के लिए निम्न कोड का प्रयास किया है और यह काम नहीं करता है। खिड़की अभी भी एक विकलांग शीर्षक पट्टी है और महत्वपूर्ण घटनाओं को स्वीकार नहीं कर रहा है आदि

[self.window makeKeyAndOrderFront:self]; 
[self.window makeMainWindow]; 

एक ही रास्ता मैं पिछले विंडो फ़ोकस कम करने के लिए प्राप्त करने में सक्षम होने लगते है अगर मैं showWindow बुला के बाद विंडो बंद कर दें: [[एनएसएपीपी मुख्यविंडो] बंद] के साथ;

कोई भी विचार?

+4

यकीन नहीं है कि मुझे यहां -1 क्यों मिला, कोई मुझे बताता है कि मैं इस प्रश्न को कैसे सुधार सकता हूं? – Luke

उत्तर

13

makeKeyAndOrderFront: जाने का रास्ता है। क्या आप वाकई self.window और window एक ही ऑब्जेक्ट को संदर्भित करते हैं?

+0

धन्यवाद लेकिन यह अभी भी काम नहीं करता है। मैंने [खिड़की बनाने के लिए एंड्रॉइडफ्रंट: स्वयं] जोड़ा; शो के बाद सीधे कॉल करेंविंडो: और यह अभी भी काम नहीं करता है। क्या मुझे इसे कहीं और बुलाया जाना चाहिए? – Luke

+0

'makeKeyAndOrderFront:' सही तरीका है। इससे कोई फर्क नहीं पड़ता कि आप इसे कहां कहते हैं। समस्या कुछ और है। उदाहरण के लिए, मुख्य विंडो मोडल हो सकती है, या कुछ उत्तरदाता स्थिति को छोड़ने से इंकार कर रहा है। –

+1

हां, निब के अंदर एक समस्या थी, समाधान के लिए मेरा जवाब देखें। – Luke

8

मैंने निब के भीतर एक अलग NSWindowController ऑब्जेक्ट रखने के बजाय विंडो नियंत्रक को निब फ़ाइल मालिक को असाइन करके समस्या का समाधान किया।

+0

से नीचे मेरा उत्तर देखें, मैं इसमें एक बिंदु जोड़ना चाहता हूं, मैं इंटरफेस बिल्डर में अपने एनएसविंडो में विंडो आउटलेट को कनेक्ट करना भूल गया। इससे कोड मेरे लिए काम नहीं कर रहा था, इसलिए इसे पढ़ने वाले किसी को भी, विंडो आउटलेट को कनेक्ट करना न भूलें। एक साधारण गलती, लेकिन एक जो आपको उम्र के लिए निराश छोड़ सकता है – Supertecnoboff