J'ai ajouté plusieurs target-action-forControlEvents: à un UIButton. Je voudrais supprimer tous ces éléments en une seule fois sans rien désaffecter. Je fixerai ensuite de nouveaux objectifs.
Est-ce possible et comment puis-je m'y prendre?
Appelez removeTarget: action: forControlEvents: , transmettez nil pour la cible, NULL pour action et utilisez un masque de contrôle définissant tous les bits (UIControlEventAllEvents).
Objective-C
[someControl removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
Swift 2
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Swift 3
button.removeTarget(nil, action: nil, for: .allEvents)
La réponse de @ progrmr dans Swift 2:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
et Swift 3:
button.removeTarget(nil, action: nil, for: .allEvents)
Remarque: Swift n'a pas NULL
, j'ai donc essayé de le remplacer par nil
et cela semble fonctionner correctement.
Rapide:
btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
Swift 2:
actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Swift 3 & 4:
actionButton.removeTarget(nil, action: nil, for: .allEvents)
Objective-C:
[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
J'espère que ça aide.
- removeTarget:action:forControlEvents:
Cette méthode arrête la livraison d'événements à l'objet cible spécifié.
Spécifiant un objet valide dans le paramètre target, cette méthode arrête la diffusion des événements spécifiés à toutes les méthodes d'action associées à cet objet.
Spécifiant nil pour le paramètre cible, cette méthode empêche la remise de ces événements à toutes les méthodes d'action de tous les objets cible.
objectif-c:
[_myButton removeTarget: //any validObject (or) nil
action:nil
forControlEvents:UIControlEventAllEvents];
Rapide:
myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)
Pour plus de détails https://developer.Apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//Apple_ref/occ/instm/UIControl/removeTarget:action:forControlEvents =: