Respostas:
Chame removeTarget: action: forControlEvents:, passe nulo para o destino, NULL para ação e use uma máscara de controle que define todos os bits (UIControlEventAllEvents).
Objetivo-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)
A resposta de @ progrmr no Swift 2:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
e Swift 3:
button.removeTarget(nil, action: nil, for: .allEvents)
Nota: Swift não possui NULL
, então testei substituí-lo nil
e parece funcionar bem.
removeTarget(nil, action: nil, for: .allEvents)
nil
ou NULL
para ambos os primeiro e segundo argumentos em Objective-C também, e ele vai trabalhar. Eu acredito que ambos são definidos como (void*) 0
(ou pelo menos, avaliar como iguais).
Rápido:
btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
Swift 2:
actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Swift 3 e 4:
actionButton.removeTarget(nil, action: nil, for: .allEvents)
Objetivo-C:
[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
Espero que ajude.
- removeTarget:action:forControlEvents:
Este método interrompe a entrega de eventos para o objeto de destino especificado.
Especificando um objeto válido no parâmetro target, esse método interrompe a entrega dos eventos especificados para todos os métodos de ação associados a esse objeto.
Especificando zero para o parâmetro target, esse método impede a entrega desses eventos a todos os métodos de ação de todos os objetos de destino.
objetivo-c:
[_myButton removeTarget: //any validObject (or) nil
action:nil
forControlEvents:UIControlEventAllEvents];
rápido:
myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)
Para obter mais detalhes https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/removeTarget:action:forControlEvents :