का पृष्ठभूमि रंग बदलें मेरे पास एक मैक एप्लिकेशन में एक NSButton है जिसका रंग मैं प्रोग्रामिक रूप से बदलना चाहता हूं लेकिन मैंने जो कुछ भी कोशिश नहीं की, वह काम करने लगता है। मैंने NSButtonCell पर आउटपुट बनाने की कोशिश की और वहां पृष्ठभूमि रंग सेट किया लेकिन यह भी काम नहीं करता था। कोई भी कोड स्निपेट उपयोगी होगा।एनएसबटन
एनएसबटन
उत्तर
मानक एक्वा (गोली के आकार वाले) बटन सिस्टम द्वारा खींचे जाते हैं। उनके पास पृष्ठभूमि रंग नहीं है। वास्तव में, वे छवियों से बना होते हैं जो कोको एक सुसंगत बटन छवि बनाने के लिए एकसाथ सिलाई करते हैं। तो कोको छवियों को आपकी पसंद के अनुसार याद नहीं कर सकता है। केवल डिफ़ॉल्ट बटन (रिटर्न सेट वाला एक इसके बराबर के रूप में सेट) में नीली पल्सिंग पृष्ठभूमि होगी।
ऐसा लगता है कि आप ऐसा करना चाहते हैं जिसमें NSButtonCell
subclassing और अपना स्वयं का चित्रण शामिल होगा। यदि आप इच्छित छवियों को प्राप्त करने के लिए बटन छवियों को दोहराना चाहते हैं, तो आप उत्कृष्ट Theme Park उपयोगिता को ऐप्पल के बटन छवियों की प्रतियों को निकालने और उन का उपयोग करने के लिए उपयोग कर सकते हैं। मैं कुछ इंटरफ़ेस तत्वों को "चोरी" करने के लिए स्वयं को ऐसा करने के लिए स्वीकार करूंगा जो अन्यथा पहुंच योग्य नहीं हैं, जैसे आईट्यून्स के स्क्रोलर।
मान लें कि सबकुछ आपके सीमाहीन बटन के लिए आईबी में लगा हुआ है। setBackgroundColor प्रलेखन से
// *.h file
IBOutlet NSButton* myButton;
// *.m file
[[myButton cell] setBackgroundColor:[NSColor redColor]];
नोट:
"पृष्ठभूमि रंग केवल प्रयोग किया जाता है जब सीमारहित बटन ड्राइंग।"
यदि यह आपके लिए नहीं करेगा तो आपको NSButton को ओवरराइड करने और स्वयं को चित्रण को लागू करने की आवश्यकता होगी।
गुड लक।
यह: स्टाइल, इंटरफ़ेस बिल्डर से की मेरी अधिकांश खिड़कियों पर बहुत अच्छा काम करता है। कोई विचार यह एनएसविंडो पर एनएसटीयूएलआरओ के साथ क्यों काम नहीं करता है जो इसके NSViews को अंदर और बाहर स्वैप करता है? उन 'swappable' NSViews पर बटन पृष्ठभूमि रंग से बिल्कुल प्रभावित नहीं होते हैं और फिर भी मैं उनके टेक्स्ट का रंग बदल सकता हूं ठीक है = ( – valheru
यह तेजी से काम नहीं कर रहा है। मैंने नहीं किया सेटबैकग्राउंडर विधि –
एनएसबटन कैल पर वह संपत्ति अभी भी स्विफ्ट में है। '(बटन.cell as? NSButtonCell) जैसी कुछ होनी चाहिए? पृष्ठभूमि रंग = एनएससीओलर.रेड – Mark
UIElement (तत्व बटन, दृश्य की तरह कुछ भी की है ....)
UIElement * VARNAME;
[varname setBackgroundColor:[UIColor colorWithRed:0.8 green:0.8 blue:0.6 alpha:1.0]];
जैसे: UIButton * pButton;
[pButton setBackgroundColor:[UIColor colorWithRed:0.8 green:0.8 blue:0.6 alpha:1.0]];
यह एनएसबटन के लिए मदद नहीं करेगा। –
कृपया प्रश्न पढ़ें .. यह कहता है कि एनएसबटन यूआईबटन – ValayPatel
मार्क का उत्तर सही है। लेकिन अगर कोड द्वारा ऐसा करना आपके लिए गन्दा होगा, तो ऐसा करने का एक और तरीका यह है कि इसे सीधे इंटरफ़ेस बिल्डर में सेट करना है।
- इंटरफ़ेसबिल्डर में बटन ढूंढें और उस पर क्लिक करें।
- इंटरफ़ेस बिल्डर के ऑब्जेक्ट ब्राउज़र अनुभाग पर आप उस बटन को देखेंगे जिस पर आपने क्लिक किया था ड्रॉपडाउन प्रकटीकरण आइकन है। इस पर क्लिक करें। इसके बाद यह आपको NSButton के NSButtonCell दिखाएगा। इस पर क्लिक करें।
- NSButtonCell चयनित के साथ, पहचान-निरीक्षक पर क्लिक करें।
- पहचान-निरीक्षक में
User Defined Runtime Attributes
- सेक्शन को देखने के लिए छोटे प्लस (+) चिह्न पर क्लिक करें। मान में 3 गुण होंगे। (ए) मुख्यपथ (बी) प्रकार (सी) मूल्य
- बदलें करने के लिए मुख्यपथ:
backgroundColor
। इस प्रकार को बदलें:Color
।मान को बदलें: आप जो भी रंग चाहते हैं (एक रंग पिकर प्रदर्शित किया जाएगा)
हो गया।
let button = NSButton()
button.title = ""
button.bezelStyle = .texturedSquare
button.isBordered = false //Important
button.wantsLayer = true
button.layer?.backgroundColor = NSColor.red.cgColor
नहीं है तर्कसंगत रूप से यह काम करना चाहिए लेकिन यह मेरे लिए काम नहीं करता है। –
बटन को सीमाहीन पर सेट करना याद रखें। –
- मैं हूं यह नहीं कह रहा कि यह काम नहीं करता है (एक्सकोड 8.2.1) लेकिन इसके बारे में लगभग एक घंटे खर्च करने के बाद, इससे कोई फर्क नहीं पड़ता कि मैंने क्या बदल दिया है, बस काम नहीं करता – Yatko
यहाँ यह करने के लिए एक और संभव तरीका है। मैंने एक NSButton उपclass संकलित किया है जो पृष्ठभूमि रंग, सीमा विशेषताओं (रंग, चौड़ाई, कोनों), और शीर्षक विशेषताओं (रंग, फ़ॉन्ट) सेट करना आसान बनाता है।
उपयोग करने के लिए स्वतंत्र महसूस: https://github.com/philfung/osx-dudley/blob/master/DudNSButton.swift
इन महान जवाब के लिए धन्यवाद:
अच्छा काम - इसे साझा करने के लिए धन्यवाद। आप स्विफ्ट के नवीनतम संस्करण के लिए अपडेट करना चाहेंगे क्योंकि यह अब तक चलने वाला प्रतीत नहीं होता है –
एक विधि बटन के पीछे एक दृश्य बना सकते हैं और इस बात का रंग सेट करने के लिए है। यह एक ही फ्रेम के साथ दृश्य बनाता है और बटन को दृश्य के शीर्ष पर रखता है। मैं यह सुनिश्चित करने के लिए बटन पर एक टैग का उपयोग करता हूं कि हम केवल एक बार दृश्य जोड़ दें, इसलिए यूआई ड्राइंग करते समय विधि को बार-बार कहा जा सकता है।
मैंने टेक्स्ट रंग सेट करने के लिए अपना कोड शामिल किया है।
बदलें रंग और अल्फा के रूप में वांछित:
NSColor *colour = [NSColor colorWithRed:0.0 green:0.0 blue:1.0 alpha:0.5] ;
[self styleButton:button colour:colour] ;
-(void) styleButton:(NSButton *)button colour:(NSColor *)colour {
[self setButton:button fontColor:[NSColor whiteColor]];
if(button.tag == 9901) return ;
button.bezelStyle = NSBezelStyleTexturedSquare ;
[button setBordered:NO];
NSView *b2 = [[NSView alloc] initWithFrame:button.frame] ;
[button.superview addSubview:b2] ;
b2.layer.backgroundColor = colour.CGColor;
[button removeFromSuperview];
[b2.superview addSubview:button];
button.tag = 9901 ;
}
-(void) setButton:(NSButton *)button fontColor:(NSColor *)color {
NSMutableAttributedString *colorTitle = [[NSMutableAttributedString alloc] initWithAttributedString:[button attributedTitle]];
[colorTitle addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(0, button.attributedTitle.length)];
[button setAttributedTitle:colorTitle];
}
मैं एक NSButton
उपवर्ग यह बटन पृष्ठभूमि रंग, पाठ रंग, आइकन रंग, सीमाओं और अन्य प्रकार बदलने के लिए सुपर आसान बना देता है कि FlatButton
बुलाया बना लिया है
भयानक काम के लिए धन्यवाद। मैं अभी भी आश्चर्यचकित हूं कि मैकोज़ यूआई तत्वों के लिए कितना छोटा अनुकूलन है।वैसे, क्या आपके फ़्लैटबटन को टॉगल बटन के रूप में उपयोग करना संभव है? –
@SteveBegin धन्यवाद! हां, एक साधन विकल्प है। – Oskar
कमाल का काम - लेकिन जब मैं बटन में आइकन जोड़ने का प्रयास करता हूं तो वे अनुपात से बाहर निकलते हैं। –
- 1. एनएसबटन
- 2. लपेटें एनएसबटन शीर्षक
- 3. उद्देश्य-सी: एनएसबटन सेटएक्शन
- 4. एनएसबटन सफेद पृष्ठभूमि जब
- 5. एनएसबटन दबाकर कीबोर्ड कैसे दिखाएं?
- 6. एनएसबटन ओपन फोंट पैनल बनाएं
- 7. ब्लूश लुक के साथ एनएसबटन डिफॉल्ट बटन
- 8. एनएसबटन बिना "हाइलाइटिंग पर क्लिक करें"
- 9. आप कस्टम थीम वाले एनएसबटन कैसे बनाते हैं?
- 10. एनएसटीक्स्टफील्ड खाली होने पर एनएसबटन को अक्षम/सक्षम करें या
- 11. एनएसबटन की छवियां चयन पर पारदर्शिता खो देती हैं
- 12. एनएसटीबल व्यू चयन
- 13. एनएसबीटन ओएसएक्स पर पाठ
- 14. एक एक्शन कोको भेजें - IBAction
- 15. init और awakeFromNib
- 16. NSStatusItem
- 17. कॉन्स्टेंट
- 18. उद्देश्य-सी प्रतिक्रियाएं चयनकर्ता
- 19. कोर एनीमेशन: अपने केंद्र
- 20. एनएसविंडो बंद करें बटन को ओवरराइड करें
यह बताता है कि मैं पृष्ठभूमि को क्यों संशोधित नहीं कर सकता संपत्ति। थीम पार्क एक वास्तविक मणि है! – aleemb
माउंटेन शेर पर ऐसा करने के बारे में कोई विचार है? थीम पार्क को तेंदुए की आवश्यकता है। –