programing

UIButton 모든 대상 액션 제거

showcode 2023. 5. 5. 10:02
반응형

UIButton 모든 대상 액션 제거

제어 이벤트에 대한 여러 target-action-forControlEvents 버튼을 추가했습니다.할당을 해제하지 않고 이 모든 것을 한 번에 제거하고 싶습니다.그런 다음 새로운 목표를 설정하겠습니다.

이것이 가능하고 어떻게 진행해야 하나요?

removeTarget:action:controlEvents:를 호출하고 대상에 대해 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)

@Swift 2에서 프로그램의 답변:

button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)

스위프트 3:

button.removeTarget(nil, action: nil, for: .allEvents)

참고: Swift에는 없습니다.NULL그래서 저는 그것을 교체하는 것을 시험했습니다.nil그리고 그것은 잘 작동하는 것처럼 보입니다.

스위프트 3, 4, 5:

btnCancel.removeTarget(nil, action: nil, forControlEvents: UIControlEvents.AllEvents)

스위프트 2:

actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)

스위프트 3 & 4:

actionButton.removeTarget(nil, action: nil, for: .allEvents)

목표-C:

[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
- removeTarget:action:forControlEvents:

이 메서드는 지정된 대상 개체에 대한 이벤트 전송을 중지합니다.

  1. 대상 매개 변수에 유효한 개체를 지정하면 이 메서드는 해당 개체와 연결된 모든 작업 메서드에 지정된 이벤트의 전달을 중지합니다.

  2. 대상 매개 변수에 대해 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:ControlEvents:

조건부인 경우 선택기를 변경할 수 있습니다.아래 예 참조

먼저 모든 대상을 제거한 다음 선택기를 선택하고 추가할 수 있습니다.

rateButton.removeTarget(nil, 작업: nil, for: .allEvents)

    let action = interview.isRated ? #selector(viewTapped(_:)) : #selector(rateTapped(_:))
            
    rateButton.addTarget(self, action: action, for: .touchUpInside)

언급URL : https://stackoverflow.com/questions/3340825/uibutton-remove-all-target-actions

반응형