Ответы:
Вызовите removeTarget: action: forControlEvents:, передайте nil для цели, NULL для действия и используйте маску управления, которая устанавливает все биты (UIControlEventAllEvents).
Objective-C
[someControl removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
Swift 2
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Свифт 3
button.removeTarget(nil, action: nil, for: .allEvents)
Ответ @ progrmr в Swift 2:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
и Свифт 3:
button.removeTarget(nil, action: nil, for: .allEvents)
Примечание: Swift не имеет NULL
, поэтому я протестировал замену его на nil
и он, кажется, работает нормально.
removeTarget(nil, action: nil, for: .allEvents)
nil
или NULL
к обеим первым и вторым аргументам в Objective-C тоже, и он будет работать. Я считаю, что оба определены как (void*) 0
(или, по крайней мере, оценивать как равные).
Swift:
btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
Свифт 2:
actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Свифт 3 и 4:
actionButton.removeTarget(nil, action: nil, for: .allEvents)
Objective-C:
[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
Надеюсь, поможет.
- removeTarget:action:forControlEvents:
Этот метод останавливает доставку событий указанному целевому объекту.
Указывая действительный объект в целевом параметре, этот метод останавливает доставку указанных событий всем методам действия, связанным с этим объектом.
Указывая nil для целевого параметра, этот метод предотвращает доставку этих событий всем методам действия всех целевых объектов.
Objective-C:
[_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 :