スポンサーリンク

【Swift】textfieldで数字・英数字の制限を行う方法ご紹介。

Swift
スポンサーリンク

今回の記事は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関連の記事を記載しているので是非そちらも合わせて使用してみて下さい。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

Swift
スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました