今回の記事はSwiftのtextfieldの数字・英数字のみや文字数制限を行う方法ご紹介記事です。Swift初心者の方にも分かりやすいように分かりやすいようにtextfieldの使い方も詳しく記載するので是非参考にして下さい。
Swiftでtextfieldを使う
Swiftでtextfieldでを使う方法は下記記事で詳しく設定しています。今回の数字・英数字制限に関してはtextfieldの設置とoutlet接続、文字数制限の処理の記述が必要になってきます。下記を参考にして下さい。
「【Swift】textfieldの使い方ご紹介。〜 初心者向け 〜」
textfieldで数字・英数字の制限を行う
では数字・英数字の制限を行う方法をご紹介します。
class ViewController: UIViewController,UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
test.delegate = self
}
//半角英数字制限
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string.count > 0 {
var allowedCharacters = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyz1234567890_") // 入力可能な文字
allowedCharacters.insert(charactersIn: " -")
let unwantedStr = string.trimmingCharacters(in: allowedCharacters) // 入力可能な文字を全て取り去った文字列に文字があれば、テキスト変更できないFalseを返す。
if unwantedStr.count == 0 {
print("正常")
return true
} else {
print("異常")
return false
}
} else {
print("正常")
return true
}
}
}
上記のコードでは半角英数字のみが許可された形になっています。簡単に解説を行なっておきます。
まず、Viewcontrollerに下記でtextfieldのdelegateを追加しています。
class ViewController: UIViewController,UITextFieldDelegate {
}
次に追加したdelegateを指定のtextfieldに紐付けます。
class ViewController: UIViewController,UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
//ここ
test.delegate = self
}
}
最後にdelegateに対応するプロトコル(関数)を記述します。これでtextfield内の文字が異常な場合は「異常」と出力できます。ここでAlertを上げる処理やtextfieldを空欄にするなどの処理で半角英数字の文字制限完了です。数字のみの場合は下記をいじれば出力したい文字のみにできます。
var allowedCharacters = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyz1234567890_") // 入力可能な文字
では今回の記事は以上です。他にも多数のSwift関連の記事を記載しているので是非そちらも合わせて使用してみて下さい。
コメント