46

UITextFieldコード内を無効にする簡単な方法はありますか?

私のアプリにはUITextFieldデフォルトですべてオンになっている 12 がありますが、セグメント コントロールで変更が検出された場合UITextField、ユーザーが選択したセグメントに応じて一部を無効にしたいと考えています。

無効にする方法や編集不可にする方法を知りたいだけですか?

ありがとう

4

5 に答える 5

112

Objective-C の場合:

textField.enabled = NO;

スウィフトの場合:

textField.isEnabled = false

参考:UIControl.isEnabled

于 2009-03-01T12:31:06.573 に答える
30

テキスト フィールドが無効であることも示したい場合は、さらにコードを追加する必要があります。

UITextBorderStyleRoundedRect を使用している場合は、テキストのみをグレー表示できます。

textField.enabled = NO;
textField.textColor = [UIColor lightGrayColor];

他のスタイルを使用している場合は、背景をグレーアウトすることもできます:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
于 2012-05-01T08:56:51.447 に答える
12

複数のテキストフィールドも使用する場合、これは最も簡単です。

viewDidLoad:(編集可能であってはならないテキストフィールドに対してのみデリゲートを設定します。

self.textfield.delegate=self;

このデリゲート関数を挿入します。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return NO;
}

それでおしまい!

于 2013-07-08T17:40:41.803 に答える
2

UIView にカテゴリを作成します。

そのカテゴリに次のメソッドを追加します。

-(void)disable {
    self.alpha = 0.5;
    self.userInteractionEnabled = FALSE;
}

-(void)enable {
    self.alpha = 1.0;
    self.userInteractionEnabled = TRUE;
}

それからただ電話する

yourTextField.disable();

実際、これは任意のビューで使用できます。

于 2016-09-02T06:51:43.637 に答える
-1

このメソッドに準拠しUITextFieldDelegateて戻る必要があります。falseこの方法では、テキスト フィールドは引き続き選択できますが、編集や切り取りには使用できません。

コードはSwift 4にあります

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
于 2018-05-18T12:40:18.337 に答える