ios - UIButton सभी लक्ष्य-क्रियाओं को हटा दें




(3)

कॉल removeTarget:action:forControlEvents: लक्ष्य के लिए शून्य पास करें, कार्रवाई के लिए नल, और एक नियंत्रण मास्क का उपयोग करें जो सभी बिट्स (UIControlEventAllEvents) सेट करता है।

उद्देश्य सी

[someControl removeTarget:nil 
                   action:NULL 
         forControlEvents:UIControlEventAllEvents];

स्विफ्ट 2

button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)

स्विफ्ट 3

button.removeTarget(nil, action: nil, for: .allEvents)

मैंने एकाधिक लक्ष्य-क्रिया-के लिए नियंत्रण नियंत्रण जोड़ा है: UIButton पर। मैं इन सभी को किसी भी तरह से हटाए बिना किसी भी स्थान पर हटाना चाहता हूं। फिर मैं नए लक्ष्य निर्धारित करूंगा।

क्या यह संभव है और मैं इसके बारे में कैसे जा सकता हूं?


स्विफ्ट 2 में @ progrmr का जवाब:

button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)

और स्विफ्ट 3:

button.removeTarget(nil, action: nil, for: .allEvents)

नोट: स्विफ्ट में NULL नहीं है, इसलिए मैंने इसे nil साथ बदलने का परीक्षण किया और ऐसा लगता है कि यह ठीक काम करता है।


- removeTarget:action:forControlEvents:

यह विधि निर्दिष्ट लक्ष्य ऑब्जेक्ट पर ईवेंट की डिलीवरी रोक देती है।

  1. लक्ष्य पैरामीटर में एक मान्य ऑब्जेक्ट निर्दिष्ट करना, यह विधि निर्दिष्ट ऑब्जेक्ट्स की डिलीवरी को उस ऑब्जेक्ट से जुड़े सभी क्रिया विधियों पर रोक देती है।

  2. लक्ष्य पैरामीटर के लिए शून्य निर्दिष्ट करना, यह विधि उन ईवेंट की डिलीवरी को सभी लक्षित ऑब्जेक्ट्स के सभी क्रिया तरीकों से रोकती है

    उद्देश्य सी:

    [_myButton removeTarget:  //any validObject (or) nil
                  action:nil
        forControlEvents:UIControlEventAllEvents]; 
    

    तेजी से:

    myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)
    

अधिक जानकारी के लिए https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/removeTarget:action:forControlEvents :





uibutton