回答:
removeTarget:action:forControlEvents:を呼び出し、ターゲットにnil、アクションにNULLを渡し、すべてのビットを設定するコントロールマスク(UIControlEventAllEvents)を使用します。
Objective-C
[someControl removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
スウィフト2
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
スウィフト3
button.removeTarget(nil, action: nil, for: .allEvents)
Swift 2での@progrmrの回答:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
とスウィフト3:
button.removeTarget(nil, action: nil, for: .allEvents)
注:SwiftにはがないためNULL
、Swift nil
との置き換えをテストしたところ、問題なく動作するようです。
removeTarget(nil, action: nil, for: .allEvents)
nil
かNULL
に両方すぎObjective-Cの第1、第2引数は、それが動作します。私は両方ともとして定義されていると信じています(void*) 0
(少なくとも、等しいと評価します)。
迅速:
btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
スウィフト2:
actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Swift 3&4:
actionButton.removeTarget(nil, action: nil, for: .allEvents)
Objective-C:
[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
それが役に立てば幸い。
- removeTarget:action:forControlEvents:
このメソッドは、指定されたターゲットオブジェクトへのイベントの配信を停止します。
このメソッドは、targetパラメータで有効なオブジェクトを指定すると、そのオブジェクトに関連付けられているすべてのアクションメソッドへの指定されたイベントの配信を停止します。
ターゲットパラメーターにnilを指定すると、このメソッドは、これらのイベントがすべてのターゲットオブジェクトのすべてのアクションメソッドに配信されないようにします。
目標-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をご覧ください。