ios - 如何实现“文本框输入为空时,按钮禁用,文本框输入不空时,按钮可用”
怪我咯
怪我咯 2017-04-18 09:33:27
0
4
607

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


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

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


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

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(4)
Peter_Zhu

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

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

으아악
小葫芦

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

으아악

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

으아악 으아악

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

으아악

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

大家讲道理

우아함을 더하다

으아악
Peter_Zhu

으아악

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿