Я добавил несколько целевых действий для forControlEvents: в UIButton. Я бы хотел удалить все это за один раз, не снимая ничего. Затем я установил новые цели.
Возможно ли это и как мне это сделать?
Я добавил несколько целевых действий для forControlEvents: в UIButton. Я бы хотел удалить все это за один раз, не снимая ничего. Затем я установил новые цели.
Возможно ли это и как мне это сделать?
Вызвать removeTarget:action:forControlEvents:, передать нуль для цели, NULL для действия и использовать маску управления, которая устанавливает все биты (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)
@progrmr ответ в Swift 2:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
и Swift 3:
button.removeTarget(nil, action: nil, for: .allEvents)
Примечание: Swift не имеет NULL
, поэтому я тестировал его замену на nil
и, похоже, работает нормально.
Swift:
btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
- 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)