2015-11-01 7 views
5

मेरे पास टेक्स्ट फ़ील्ड (एनएसटीक्स्टफिल्ड या एनएससीम्बोबॉक्स) और सीमा रहित बटन वाले कंपन के साथ एक NSVisualEffectView है। बटन टेक्स्ट फ़ील्ड पर स्थित हैं और मैं सीमाहीन बटन पर कंपन प्रभाव को अक्षम करना चाहता हूं क्योंकि उन्हें टेक्स्ट फ़ील्ड की सफेद पृष्ठभूमि पर दिखाई देना चाहिए।NSVisualEffectView कंपन से ऑप्ट-आउट सीमा रहित एनएसबटन

NSVisualEffectView क्लास संदर्भ में अनुशंसा के अनुसार मैंने क्या करने की कोशिश की, मेरे एनएसबीटन को अन्य राज्य एनएसवीआईएसयूएलफेक्ट व्यू के अंदर निष्क्रिय करने के लिए अपने राज्य सेट के साथ लपेटना है। यह क्या करता है यह एक हल्के भूरे रंग की पृष्ठभूमि से "जीवंत" पृष्ठभूमि को प्रतिस्थापित करता है।

नीचे दी गई तस्वीर इसे दर्शाती है। पहला क्षेत्र मेरा प्रयास समाधान है, दूसरा एक NSVisualEffectView के बच्चे के रूप में एक सीमा रहित बटन का डिफ़ॉल्ट व्यवहार दिखाता है।

enter image description here

मैं भी NSButton उपवर्गीकरण की कोशिश की और सफेद या स्पष्ट करने के लिए अपने सेल पृष्ठभूमि रंग सेट लेकिन मैं हमेशा धूसर पृष्ठभूमि मिलता है।

मैं हल्के भूरे रंग की पृष्ठभूमि को एक सफेद या स्पष्ट पृष्ठभूमि में कैसे बदल सकता हूं? धन्यवाद

उत्तर

3

मैंने सिर दर्द के कुछ घंटों के बाद इसे हल करने में कामयाब रहे। समाधान को NSVisualEffectView में लपेटने के लिए बटन की आवश्यकता नहीं है। बस NSButton subclassing और allowsVibrancy संपत्ति को ओवरराइड करना और इसे false पर सेट करना पर्याप्त था।

स्विफ्ट में:

override var allowsVibrancy: Bool { return false } 
संबंधित मुद्दे