2010-04-24 5 views
5

मैं कोको एप्लिकेशन बना रहा हूं जो स्टेटस बार में किसी आइटम के रूप में चलता है। ऐसा करने के लिए मानक कोको तंत्र का उपयोग करके इस एप्लिकेशन में खिड़की के बारे में एक विंडो और एक आइटम सक्रिय करने के लिए है (-[NSApplication orderFrontStandardAboutPanel:])। स्वाभाविक रूप से यह सब स्वचालित रूप से झुका हुआ है।मैं यूआई के साथ कोको एप्लिकेशन में सामने वाली सबसे खिड़की के बारे में विंडो कैसे बना सकता हूं?

यह एक चीज़ को छोड़कर बहुत अच्छा काम करता है: विंडोज़ के बारे में अधिकतर के विपरीत, यह के नीचे शीर्ष पर की बजाय अन्य सभी विंडो दिखाता है। मेरा मानना ​​है कि ऐसा इसलिए है क्योंकि एप्लिकेशन में यूआई नहीं है, इसलिए इसकी सभी खिड़कियां स्वचालित रूप से अन्य विंडो के नीचे हैं। क्या कोई तरीका है कि मैं विंडो के बारे में प्रदर्शित करने के लिए एनएसएप्लिकेशन तंत्र में हुक कर सकता हूं ताकि मैं इसे सामने भेज सकूं, और इसे ⌘-W को प्रतिसाद दे ताकि इसे कीबोर्ड से बंद किया जा सके? मैंने एनएसएप्लिकेशंस के लिए दस्तावेज़ों में चारों ओर पोक किया है, लेकिन उस विंडो के संदर्भ में कोई रास्ता नहीं है जिसे मैं देख सकता हूं ताकि मैं इसे शीर्ष पर प्रदर्शित कर सकूं।

उत्तर

6

क्या कोई तरीका है कि मैं एनएसएप्लिकेशन तंत्र में खिड़की को प्रदर्शित करने के लिए हुक कर सकता हूं ताकि मैं इसे सामने भेज सकूं?

यही orderFrontStandardAboutPanel: करता है।

यह एक चीज़ को छोड़कर महान काम करता है: विंडोज़ के बारे में अधिकतर के विपरीत, यह शीर्ष पर की बजाय अन्य सभी विंडोज़ के नीचे दिखाई देता है। मेरा मानना ​​है कि ऐसा इसलिए है क्योंकि एप्लिकेशन में यूआई नहीं है, इसलिए इसकी सभी विंडो स्वचालित रूप से अन्य [एप्लिकेशन '] विंडो के नीचे हैं।

bringing your application to the front[NSApp activateIgnoringOtherApps:YES] के साथ प्रयास करें।

ध्यान दें कि कैसे आप अपने आवेदन मामलों "एक यूआई नहीं": आप LSUIElement उपयोग कर रहे हैं, कि काम करेंगे, जबकि LSBackgroundOnly बहुत सख्ती से मतलब है पृष्ठभूमि केवल

+0

धन्यवाद। क्या कोई तरीका है कि मैं खिड़की को ⌘-W कीबोर्ड ईवेंट का जवाब भी दे सकता हूं, इसलिए इसे कीबोर्ड से बंद किया जा सकता है? खिड़की अब सामने आती है, लेकिन ⌘-W दबाकर इसे बंद नहीं किया जाता है (इसके बजाए, जब कीबोर्ड कीबोर्ड शॉर्टकट अमान्य होता है तो मुझे सिस्टम अलर्ट ध्वनि मिलती है)। – mipadi

+0

क्या आपके पास मुख्य मेनू है? यहां तक ​​कि यदि यह सामान्य रूप से दिखाई नहीं दे रहा है, तो भी आपके पास ⌘W, ⌘Z, ⌘C, ⌘V, आदि जैसे कीबोर्ड शॉर्टकट को संभालने के लिए मुख्य मेनू होना चाहिए। –

+0

मेरे पास एक नहीं था, लेकिन मैंने एक जोड़ा। इसमें उचित कीबोर्ड शॉर्टकट के साथ सामान्य "बंद करें" आइटम है, लेकिन यह अभी भी काम नहीं कर रहा है। – mipadi

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