UITextField
コード内を無効にする簡単な方法はありますか?
私のアプリにはUITextField
デフォルトですべてオンになっている 12 がありますが、セグメント コントロールで変更が検出された場合UITextField
、ユーザーが選択したセグメントに応じて一部を無効にしたいと考えています。
無効にする方法や編集不可にする方法を知りたいだけですか?
ありがとう
UITextField
コード内を無効にする簡単な方法はありますか?
私のアプリにはUITextField
デフォルトですべてオンになっている 12 がありますが、セグメント コントロールで変更が検出された場合UITextField
、ユーザーが選択したセグメントに応じて一部を無効にしたいと考えています。
無効にする方法や編集不可にする方法を知りたいだけですか?
ありがとう
Objective-C の場合:
textField.enabled = NO;
スウィフトの場合:
textField.isEnabled = false
テキスト フィールドが無効であることも示したい場合は、さらにコードを追加する必要があります。
UITextBorderStyleRoundedRect を使用している場合は、テキストのみをグレー表示できます。
textField.enabled = NO;
textField.textColor = [UIColor lightGrayColor];
他のスタイルを使用している場合は、背景をグレーアウトすることもできます:
textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
複数のテキストフィールドも使用する場合、これは最も簡単です。
viewDidLoad:(編集可能であってはならないテキストフィールドに対してのみデリゲートを設定します。
self.textfield.delegate=self;
このデリゲート関数を挿入します。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return NO;
}
それでおしまい!
UIView にカテゴリを作成します。
そのカテゴリに次のメソッドを追加します。
-(void)disable {
self.alpha = 0.5;
self.userInteractionEnabled = FALSE;
}
-(void)enable {
self.alpha = 1.0;
self.userInteractionEnabled = TRUE;
}
それからただ電話する
yourTextField.disable();
実際、これは任意のビューで使用できます。
このメソッドに準拠しUITextFieldDelegate
て戻る必要があります。false
この方法では、テキスト フィールドは引き続き選択できますが、編集や切り取りには使用できません。
コードはSwift 4にあります
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return false
}