1

を使用して宣言されたパスワードフィールドである UITextField があります

passwordField.secureTextEntry = YES;

私の問題は、パスワードの半分を入力して別のコンポーネントをクリックし、passwordField に戻ってもう一度入力を開始すると、iOS が既存のテキストをクリアすることです。

これが起こらないようにする方法、またはオフにする方法はありますか?

-ヘンリー

4

3 に答える 3

4

これを行う最も簡単な方法は、次のようなコードで UITextField のデリゲートを実装することです。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)replacementString {
  if (textField.text) {
      textField.text = [textField.text stringByReplacingCharactersInRange:range withString:replacementString];
  } else {
      textField.text = replacementString;
  }

  return NO;
}
于 2015-03-19T11:05:22.653 に答える
2

デフォルトでは、セキュリティで保護されたテキスト フィールドに対しては実行できません。ただし、回避することはできます。

デリゲート メソッドtextField:shouldChangeCharactersInRange:replacementString:を実装し、渡された値を使用して何をすべきかを決定します。

つまり、範囲が文字列全体であり、置換が空の文字列である場合、変更を許可しないでください。新しいテキストは、新しく入力された文字として提供される場合があります。メソッドが実際に受け取るパラメーターを確認する必要があります。

于 2013-06-04T19:27:27.620 に答える