찾다

 >  Q&A  >  본문

ios - 如何实现“文本框输入为空时,按钮禁用,文本框输入不空时,按钮可用”

我通过拖拽生成了一个文本框和一个按钮,我希望实现的功能是
“文本框输入为空时,按钮禁用,文本框输入不空时,按钮可用”


我使用的方式是用一个动作绑定与文本框编辑有关的事件,其中inputField代表文本框,primeFactorizationButton代表按钮

@IBAction func changeButton(_ sender: AnyObject) {
        if(inputField.text == ""){
            primeFactorizationButton.isUserInteractionEnabled=false
        }
        else{
            primeFactorizationButton.isUserInteractionEnabled=true
        }
    }


但是这种方法仍然不好用,好像实际上的需要是实时监听文本框的值,inputField.text,实时调整 button 的可用状态,请问我应该怎么修改代码呢?

怪我咯怪我咯2771일 전613

모든 응답(4)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-18 09:35:27

    방법 1: inputField.delegate를 설정합니다. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;의 최종 텍스트를 계산하고 text.length를 기준으로 버튼 비활성화 여부를 결정합니다.

    방법 2: 알림을 수신할 때 UITextFieldTextDidChangeNotification, NSNotificationCenter.defaultCenter.addObserver object가 inputField를 전달한 다음 처리 방법에서 다음을 결정합니다.

    으아악

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-18 09:35:27

    최근에 우연히 이 기능을 구현하게 되었는데, 꽤 쉽습니다. 먼저 UITextFIeld의 프록시 계약을 준수하고 다음 방법을 구현하세요.

    으아악

    그런 다음 알림을 만들고 알림 수신 방법을 판단합니다.

    으아악 으아악

    그러나 알림을 제거하는 것을 잊지 마세요:

    으아악

    RAC를 사용하는 또 다른 방법인 리액티브 프로그래밍이 더 편리하지만, 당분간은 어떻게 해야할지 모르겠으니 시도해 볼 수도 있습니다

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:35:27

    우아함을 더하다

    으아악

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:35:27

    으아악

    회신하다
    0
  • 취소회신하다