Odpowiedzi:
Wywołaj removeTarget: action: forControlEvents:, podaj zero dla celu, NULL dla akcji i użyj maski kontrolnej, która ustawia wszystkie bity (UIControlEventAllEvents).
Cel C
[someControl removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
Swift 2
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Szybki 3
button.removeTarget(nil, action: nil, for: .allEvents)
Odpowiedź @ progrmr w Swift 2:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
i Swift 3:
button.removeTarget(nil, action: nil, for: .allEvents)
Uwaga: Swift nie ma NULL
, więc przetestowałem jego wymianę nil
i wydaje się, że działa dobrze.
removeTarget(nil, action: nil, for: .allEvents)
nil
albo NULL
do obu pierwszych i drugich argumentów w Objective-C też, i to będzie działać. Uważam, że oba są zdefiniowane jako (void*) 0
(lub przynajmniej oceniają jako równe).
Szybki:
btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
Swift 2:
actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Swift 3 i 4:
actionButton.removeTarget(nil, action: nil, for: .allEvents)
Cel C:
[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
Mam nadzieję, że to pomoże.
- removeTarget:action:forControlEvents:
Ta metoda zatrzymuje dostarczanie zdarzeń do określonego obiektu docelowego.
Określając poprawny obiekt w parametrze docelowym, ta metoda zatrzymuje dostarczanie określonych zdarzeń do wszystkich metod akcji powiązanych z tym obiektem.
Podając zero dla parametru docelowego, ta metoda zapobiega dostarczaniu tych zdarzeń do wszystkich metod działania wszystkich obiektów docelowych
cel C:
[_myButton removeTarget: //any validObject (or) nil
action:nil
forControlEvents:UIControlEventAllEvents];
szybki:
myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)
Aby uzyskać więcej informacji https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/removeTarget:action:forControlEvents :