Respuestas:
Llame a removeTarget: action: forControlEvents:, pase nil para el destino, NULL para la acción y use una máscara de control que establezca todos los bits (UIControlEventAllEvents).
C objetivo
[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 respuesta de @progrmr en Swift 2:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
y Swift 3:
button.removeTarget(nil, action: nil, for: .allEvents)
Nota: Swift no tiene NULL
, así que probé reemplazarlo nil
y parece funcionar bien.
removeTarget(nil, action: nil, for: .allEvents)
nil
o NULL
de ambas la primera y segunda argumentos en Objective-C también, y va a trabajar. Creo que ambos se definen como (void*) 0
(o al menos, evaluar como iguales).
Rápido:
btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
Swift 2:
actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Swift 3 y 4:
actionButton.removeTarget(nil, action: nil, for: .allEvents)
C objetivo:
[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
Espero eso ayude.
- removeTarget:action:forControlEvents:
Este método detiene la entrega de eventos al objeto de destino especificado.
Al especificar un objeto válido en el parámetro de destino, este método detiene la entrega de los eventos especificados a todos los métodos de acción asociados con ese objeto.
Al especificar nil para el parámetro de destino, este método evita la entrega de esos eventos a todos los métodos de acción de todos los objetos de destino
C objetivo:
[_myButton removeTarget: //any validObject (or) nil
action:nil
forControlEvents:UIControlEventAllEvents];
rápido:
myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)
Para más detalles https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/removeTarget:action:forControlEvents :