2009-03-30 15 views
19

मेरे पास 1 या अधिक बटन के साथ एक संवाद है और प्रोग्रामेटिक रूप से सही एक को डिफ़ॉल्ट सेट करने में सक्षम होना चाहते हैं, ताकि जब उपयोगकर्ता एंटर या रिटर्न कुंजी दबाए, तो उसे जवाब देना चाहिए उपयोगकर्ता ने इसे क्लिक किया।ब्लूश लुक के साथ एनएसबटन डिफॉल्ट बटन

मैं [btn setKeyEquivalent:@"\r"] का उपयोग कर रहा हूं और इससे यह ठीक काम करता है लेकिन मैं चाहता हूं कि बटन नीली दिखने वाला हो जो नहीं हो रहा है। मुझे क्या करना चाहिये?

उत्तर

34

मैं बटन बीज़ल शैली को ठीक से सेट करने के लिए गायब था और यही कारण है कि यह ठीक से नहीं दिख रहा था।

[btn setBezelStyle:NSRoundedBezelStyle]; 

इन काम के किसी भी डिफ़ॉल्ट बटन सेट करने के लिए तो: मैं अब इस रूप में बटन सेट कर रहा हूं

[myWindow setDefaultButtonCell:[btn cell]]; 

या

[btn setKeyEquivalent:@"\r"] 
+0

इस समाधान को देखते हुए उत्तेजना के साथ बस खुद को गले लगा लिया। अविश्वसनीय है कि मैंने बटन को डिफ़ॉल्ट बटन सेल होने के लिए मजबूर करने और बलपूर्वक कुंजी समकक्ष सेट करने के बारे में नहीं सोचा था। कभी-कभी आप ऐसा करने के लिए * करते हैं, भले ही आपके NSView में वापस आने के लिए शॉर्टकट सेट के साथ एक कुंजी हो। अजीब बात है लेकिन सच है। धन्यवाद! – Kezzer

+4

इंटरफ़ेस बिल्डर में आपको शैली 'पुश' चुननी होगी। मैं ओएस एक्स 10.8.3 (माउंटेन शेर) में डिफ़ॉल्ट बटन सेल के रूप में सेट करते समय सभी 15 शैलियों इंटरफ़ेस बिल्डर ऑफ़र और केवल 'पुश' चमकता हूं, अन्य प्रकार रिटर्न कुंजी पर उनकी समतुल्य कुंजी के रूप में ले जाएंगे और डिफ़ॉल्ट बन जाएंगे बटन, लेकिन जब ऐसा होता है तो केवल 'पुश' बटन नीला चमकता है। मैंने ओएस एक्स के अन्य संस्करणों पर बिल्कुल परीक्षण नहीं किया है - यह बहुत संभव है कि हिम तेंदुए (?) में यह नोट आवश्यक नहीं था जब 200 9 में इस सवाल से पूछा गया और उत्तर दिया गया। – ArtOfWarfare

+0

धन्यवाद। इससे मेरी मदद की :) – Sid

5

प्रलेखन कहते हैं:

ध्यान दें कि अगर आप लौटने के लिए कुंजी बराबर निर्धारित करते हैं, उस बटन डिफ़ॉल्ट बटन हो जाता है।

इस प्रकार, आप इसे सही तरीके से कर रहे हैं। कुंजी समकक्ष सेट करने के बाद आप इसे आजमा सकते हैं:

[button setNeedsDisplay:YES]; 

यह बटन को खुद को फिर से चलाने के लिए मजबूर करता है।

+0

क्या यह अभी भी योसामेट और ऊपर के तहत नीली रंग प्रदान करता है? यह मेरे संवादों के लिए प्रतीत नहीं होता है - भले ही कुंजी समतुल्य रिटर्न (थोड़ा नीचे बायां तीर प्रतीक) हो। – Jay

1
[myWindow setDefaultButtonCell:[btn cell]]; // should do the trick. 

अधिक जानकारी के लिए Apple's documentation देखें।

2

मेरे सेटिंग एक कस्टम शीट कर दिया गया है जहां मैं एक एनएसएएलर्ट के भीतर डिफ़ॉल्ट बटन दिखाना चाहता था। निम्नलिखित कॉन्फ़िगरेशन मुझे नीली डिफ़ॉल्ट उपस्थिति देता है। 10.12.3 सिएरा में काम करता है।

button.bezelstyle = NSBezelStyleRounded; // Push in Interface Builder 
    button.keyEquivalent = @"\r"; 
    button.highlighted = YES; // this is the most important part. 
संबंधित मुद्दे