2012-07-27 41 views
7

मै मैक ओएसएक्स/कोको विकास में नया हूं। मेरे पहले ऐप के निर्माण के दौरान, मैंने कुछ चीजों में टक्कर लगी, और इनमें से एक हरा + बटन पर मेरा मुद्दा है जिसका उद्देश्य ज़ूमिंग उद्देश्यों के लिए है।ज़ूम बटन को सक्षम/अक्षम कैसे करें (हरा + बटन)?

मैं जानना चाहता हूं कि ऐप विंडो के ज़ूम बटन के गति को गतिशील रूप से सेट करना संभव है या नहीं? क्या मैं ऐप्पल के दिशानिर्देशों से किसी भी नियम का उल्लंघन नहीं कर रहा हूं?

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

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

सहायता के लिए आगे धन्यवाद!

+0

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

उत्तर

9

आप standardWindowButton:NSWindowZoomButton के साथ उस बटन का संदर्भ प्राप्त कर सकते हैं, और उसके बाद आप जो कुछ भी कर सकते हैं NSButton के साथ कर सकते हैं।

अद्यतन (स्विफ्ट में):

var button = view.window?.standardWindowButton(NSWindowButton.ZoomButton) 
button?.enabled = false 
+0

ऐसा करने के सही तरीके के लिए सैम सॉफ़्स का उत्तर नीचे देखें। –

+1

धन्यवाद! यदि आप अपनी विंडो को आकार देने योग्य रखना चाहते हैं, लेकिन नहीं चाहते हैं कि आपका एप्लिकेशन बटन प्रेस पर पूरी स्क्रीन भरने के लिए, यह कोड हरे ज़ूम बटन को अक्षम करता है। – balazs630

6

बटन बना रहे और सेटिंग सक्षम आदर्श नहीं है। सबसे अच्छा तरीका (10.6+) setStyleMask: का उपयोग करना है। यहां यह कैसे करें:

window.styleMask = NSTitledWindowMask | NSClosableWindowMask 

आप इच्छानुसार शैलियों को जोड़ या निकाल सकते हैं। शैली को बदलने के बिना ऐसा करने का एक और तरीका एक ही आकार में minSize और maxSize सेट करना है। यह आकार बदलने में अक्षम भी होगा।

var style = window.styleMask 
style.remove(.resizable) 
window.styleMask = style 

मैं आमतौर पर स्टोरीबोर्ड में दृश्य नियंत्रकों के लिए viewDidAppear में ऐसा एक मैं कर सकते हैं के बजाय स्वचालित रूप से उनके लिए बनाई गई एक खिड़की नियंत्रक है:

1

स्विफ्ट 3 में, यहाँ की क्षमता को दूर करने के लिए सबसे आसान तरीका है साथ गड़बड़।

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