Yanıtlar:
RemoveTarget: action: forControlEvents: öğesini çağırın , hedef için nil, action için NULL değerini çağırın ve tüm bitleri ayarlayan bir kontrol maskesi kullanın (UIControlEventAllEvents).
Objective-C
[someControl removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
Hızlı 2
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Hızlı 3
button.removeTarget(nil, action: nil, for: .allEvents)
@ progrmr'ın Swift 2'deki yanıtı:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
ve Swift 3:
button.removeTarget(nil, action: nil, for: .allEvents)
Not: Swift'in yok NULL
, bu yüzden değiştirmeyi test ettim nil
ve iyi çalışıyor gibi görünüyor.
removeTarget(nil, action: nil, for: .allEvents)
nil
ya NULL
da ikisini birden aktarabileceğinize inanıyorum ve işe yarayacaktır. Her ikisinin de (void*) 0
eşit olarak tanımlandığına inanıyorum (veya en azından eşit olarak değerlendiriniz).
Hızlı 2:
actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Hızlı 3 ve 4:
actionButton.removeTarget(nil, action: nil, for: .allEvents)
Objective-C:
[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
Umarım yardımcı olur.
- removeTarget:action:forControlEvents:
Bu yöntem, olayların belirtilen hedef nesneye teslimini durdurur.
Target parametresinde geçerli bir nesne belirtildiğinde, bu yöntem belirtilen olayların o nesneyle ilişkili tüm eylem yöntemlerine teslimini durdurur.
Target parametresi için nil belirtildiğinde , bu yöntem bu olayların tüm hedef nesnelerin tüm eylem yöntemlerine dağıtılmasını önler
Amaç-c:
[_myButton removeTarget: //any validObject (or) nil
action:nil
forControlEvents:UIControlEventAllEvents];
swift:
myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)
Daha fazla ayrıntı için https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/removeTarget:action:forControlEvents :