दिलचस्प पोस्ट
एंड्रॉइड में सिस्टम स्क्रीन उर्जा प्रोग्रामेटिक रूप से लागू नहीं किया जा सकता क्या फॉरचाचे का उपयोग सी # 5 में बदल दिया गया है? एसक्यूएल एकाधिक प्रवेश बयान कैसे vlookup करने के लिए और आर में (जैसे Excel में) भरें? ऑब्जेक्ट और कैमरे के बीच की दूरी जानने के लिए, किसी छवि से वास्तविक वस्तु का आकार कैसे प्राप्त करें? एक UIScrollView के अंदर एक UITableView स्क्रोलिंग एक TextView प्रोग्राम के रूप में लेआउट वजन सेट करें सेट सामग्री ऊंचाई 100% जेक्जरी मोबाइल यूनिट टेस्ट बनाम फंक्शनल टेस्ट AppDelegate, rootViewController और वर्तमान ViewController PHP – स्ट्रिंग के अंत में सभी विशिष्ट वर्ण कैसे निकालें? setTimeout टाइमआउट को नजरअंदाज कर देता है? (तुरंत आग) React.js में ऑनक्लिक इवेंट बाइंडिंग क्यों / जब आप नेट में नेस्टेड कक्षाओं का उपयोग करना चाहिए? या आपको नहीं करना चाहिए? कैशिंग आवश्यक स्क्रिप्ट्स से RequireJS को रोकें

डॉक आइकन कैसे छिपाएगा

मैं डॉक आइकन छिपाने और NSStatusItem दिखाने के लिए प्राथमिकता बनाना चाहता NSStatusItem । मैं StatusItem बना सकता हूं लेकिन मुझे डॉक से आइकन को निकालने का तरीका नहीं है। : – /

कोई विचार?

वेब के समाधान से एकत्रित समाधान "डॉक आइकन कैसे छिपाएगा"

मुझे लगता है कि आप Info.plist में LSUIElement तलाश कर रहे हैं

LSUIElement (स्ट्रिंग) यदि यह कुंजी "1" पर सेट है, तो लॉन्च सर्विसेज एक एजेंट एप्लिकेशन के रूप में चलाती है एजेंट एप्लिकेशन डॉक या फोर्स रिक्त विंडो में दिखाई नहीं देते हैं। हालांकि वे आम तौर पर पृष्ठभूमि एप्लिकेशन के रूप में चलाते हैं, वांछित होने पर उपयोगकर्ता इंटरफ़ेस पेश करने के लिए अग्रभूमि में आ सकते हैं।

इसे चालू / बंद करने के बारे में एक संक्षिप्त चर्चा देखें

एप्लिकेशन बंडलों को संशोधित करने और मैक ऐप स्टोर ऐप / (शेर ऐप्स?) की गारंटी देने के लिए एप्पल के दिशानिर्देशों का पालन करते समय ऐसा करने के लिए, जानकारी के आधार पर आपके हस्ताक्षर टूटे नहीं होंगे, आप लिस्पियिलमेंट को 1 में डिफ़ॉल्ट रूप से सेट कर सकते हैं, तब जब एप्लिकेशन लॉन्च करती है:

 ProcessSerialNumber psn = { 0, kCurrentProcess }; TransformProcessType(&psn, kProcessTransformToForegroundApplication); 

इसे डॉक आइकन दिखाने के लिए, या यह बाईपास अगर उपयोगकर्ता ने आइकन नहीं करना चाहता।

लेकिन एक तरफ प्रभाव है, तब तक एप्लिकेशन का मेन्यू तब तक नहीं दिखाया जाता जब तक यह नुकसान नहीं होता है और फ़ोकस को पुनः प्राप्त करता है।

स्रोत: एक चेकबॉक्स बनाना डॉक आइकन ऑन और ऑफ़ टॉगल करें

व्यक्तिगत तौर पर मैं किसी भी Info.plist विकल्प को सेट करना पसंद नहीं करता और TransformProcessType(&psn, kProcessTransformToForegroundApplication) या TransformProcessType(&psn, kProcessTransformToUIElementApplication) TransformProcessType(&psn, kProcessTransformToForegroundApplication) TransformProcessType(&psn, kProcessTransformToUIElementApplication) का उपयोग उपयोगकर्ता सेटिंग क्या है पर आधारित है।

यहां से प्रेरित, आप ऐसा कर सकते हैं:

 [NSApp setActivationPolicy: NSApplicationActivationPolicyAccessory]; 

या

 [NSApp setActivationPolicy: NSApplicationActivationPolicyProhibited]; 

इसे डॉक आइकन छुपा देना चाहिए NSApplicationActivationPolicy बारे में कुछ दस्तावेज के लिए यहां देखें।

संबंधित प्रश्न "डॉक आइकन के बिना मैक ओएस एक्स में जीयूआई प्रक्रिया शुरू करें" भी देखें

एक्सकोड 4 में इसे "एप्लिकेशन एजेंट (यूआईईलेमेंट)" के रूप में दिखाया गया है और यह बूलियन है

आपके Info.plist में रिक्त स्थान पर नियंत्रण-क्लिक करें और मेनू से "पंक्ति जोड़ें" चुनें प्रकार "अनुप्रयोग एजेंट है (UIElement)" यह हाँ सेट करें

इसे वैकल्पिक बनाने के लिए मैंने अपने कोड में निम्न पंक्ति जोड़ दी है (धन्यवाद वलेक्सा!)

  // hide/display dock icon if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hideDockIcon"]) { //hide icon on Dock ProcessSerialNumber psn = { 0, kCurrentProcess }; TransformProcessType(&psn, kProcessTransformToForegroundApplication); } 

स्विफ्ट के लिए अपडेट: (उपरोक्त दोनों तरीकों का उपयोग करें, उनका एक ही परिणाम है)

 public class func toggleDockIcon_Way1(showIcon state: Bool) -> Bool { // Get transform state. var transformState: ProcessApplicationTransformState if state { transformState = ProcessApplicationTransformState(kProcessTransformToForegroundApplication) } else { transformState = ProcessApplicationTransformState(kProcessTransformToUIElementApplication) } // Show / hide dock icon. var psn = ProcessSerialNumber(highLongOfPSN: 0, lowLongOfPSN: UInt32(kCurrentProcess)) let transformStatus: OSStatus = TransformProcessType(&psn, transformState) return transformStatus == 0 } public class func toggleDockIcon_Way2(showIcon state: Bool) -> Bool { var result: Bool if state { result = NSApp.setActivationPolicy(NSApplicationActivationPolicy.Regular) } else { result = NSApp.setActivationPolicy(NSApplicationActivationPolicy.Accessory) } return result } 

यदि आप इसे उपयोगकर्ता प्राथमिकता बनाना चाहते हैं तो आप UIElement का उपयोग नहीं कर सकते। UIElement एप्लिकेशन बंडल में रहता है आपको ऐप बंडल में किसी भी फ़ाइल को संपादित नहीं करना चाहिए क्योंकि इससे बंडल के हस्ताक्षर को अमान्य किया जा सकता है।

मैंने पाया सबसे अच्छा उपाय इस उत्कृष्ट लेख पर आधारित है। मेरा समाधान दान द्वारा टिप्पणी पर आधारित है। संक्षेप में, कोको के साथ ऐसा करने का कोई रास्ता नहीं है, लेकिन कार्बन कोड के एक छोटे से हिस्से के साथ संभव है।

लेख में सहायक सहायक बनाने वाला सुझाव भी दिया गया है जो डॉक आइकन को विशेष रूप से संभालता है। मुख्य ऐप तब उपयोगकर्ता प्राथमिकताओं के आधार पर इस ऐप को प्रारंभ और मारता है यह दृष्टिकोण मुझे कार्बन कोड के उपयोग से अधिक मजबूत होने के रूप में मारता है, लेकिन मैंने इसे अभी तक नहीं किया है