検索

ホームページ  >  に質問  >  本文

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

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


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

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


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

怪我咯怪我咯2771日前612

全員に返信(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
  • キャンセル返事