2011-11-05 17 views
9

मेरे पास एक ऐसी परियोजना है जिसे कुछ NSToolbarItems को अक्षम/सक्षम करने की आवश्यकता है, विभिन्न विकल्पों पर निर्भर करता है। मैंने जांच की और इसके लिए कोई पैरामीटर नहीं मिला।NSToolbarItem को सक्षम/अक्षम करने के लिए कैसे करें

क्या NSToolbarItem को सक्षम/अक्षम करने का कोई तरीका है?

उत्तर

9

आपकी विंडो में एनएसटीूलबारइटम वैलिडेशन प्रोटोकॉल लागू करें, देखें या दस्तावेज़ नियंत्रक।

-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem { 

    BOOL enable = NO; 
    if ([[toolbarItem itemIdentifier] isEqual:SaveDocToolbarItemIdentifier]) { 

     // We will return YES (enable the save item) 
     // only when the document is dirty and needs saving 
     enable = [self isDocumentEdited]; 

    } else if ([[toolbarItem itemIdentifier] isEqual:NSToolbarPrintItemIdentifier]) { 

     // always enable print for this window 
     enable = YES; 
    } 
    return enable; 
} 

तुम भी action या tag निर्धारित करने के लिए क्या उपकरण पट्टी आइटम मान्य किया जा रहा है का उपयोग कर सकते हैं: प्रलेखन निम्नलिखित नमूना कोड देता है। जब भी आपका ऐप सक्रिय होता है या घटनाएं भेजी जाती हैं, आइटम अक्सर मान्य होते हैं, इसलिए वे हमेशा वैध स्थिति में रहेंगे।

7

एक आसान समाधान नहीं है:

-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem 
{ 

    return [toolbarItem isEnabled] ; 
} 

कि जिस तरह से आप उपयोग कर सकते हैं [yourToolBarItem setEnabled: हां/नहीं]; आपके कोड में

+1

शानदार विचार! –

+1

स्वच्छ और अच्छा, एक कपड़े वर्ग में है –

2

तेज में यह करने के लिए एक आसान तरीका है, या आप बंदरगाह उद्देश्य ग को यह सिर्फ स्थापित करने के लिए है हो सकता है कार्यों

इस आइटम को अक्षम करता है

Mytoolbar.action = nil 

यह reEnables

Mytoolbar.action = "Name of a function" 

ऐसा करने में आप अपने आईबीएक्शन को फ़ंक्शन के साथ प्रतिस्थापित करना चाहते हैं ताकि

@IBAction func blehbleh(sender: AnyObject){ Stuff } 

func blehbleh(){ Stuff } 
0

से बदल दिया जाएगा nsij22 के रूप में कहा था कि आप कार्रवाई सेट करना होगा।

स्टोरीबोर्ड में केवल टूलबार आइटम से अपने कोड एक्शन में ctrl + खींचें।

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