답변:
removeTarget : action : forControlEvents :를 호출 하고 대상에 nil을 전달하고 조치에 NULL을 전달한 다음 모든 비트 (UIControlEventAllEvents)를 설정하는 제어 마스크를 사용하십시오.
목표 -C
[someControl removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
스위프트 2
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
스위프트 3
button.removeTarget(nil, action: nil, for: .allEvents)
스위프트 2의 @progrmr의 답변 :
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
에 모두 너무 오브젝티브 C의 제 1 및 제 2 인자, 그것은 작동합니다. 나는 둘 다 (void*) 0
(또는 최소한 동등한 것으로 평가) 정의된다고 생각합니다 .
빠른:
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)