私はテキストフィールドの文字を最小限に抑える方法を探しています。テキストフィールドはユーザー名の入力用であるため、ユーザーに4文字以上30文字以下の文字を入力させたいと考えています。最初に、テキストフィールドshouldChangeCharactersIn
を作成して、テキストフィールドに最大文字を設定しました。コードはうまく見えますが、ユーザー名テキストフィールドが4文字未満の場合、ユーザーがエラーを返すか、falseを返すようにする場合に問題になります。スウィフト3のテキストフィールドの最小文字数を設定する方法
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let currentString = usernameTextField.text!.characters.count ?? 0
if (range.length + range.location > currentString) {
return false
}
let newLength = currentString + string.characters.count - range.length
return newLength <= 30
}
助けが必要ですか?
問題は、すべてのユーザーがusernameTextFieldを4より小さく入力してから30文字を超えるとfalseになることです。私は最後の部分(30文字を超える)を行いましたが、4文字未満の解決策を見つけることができませんでした。 – user2508528
これは適切な方法ではありません。このコードでは、テキストフィールドが短すぎたり長すぎたりしても、キーボードを閉じることができます。 – rmaddy