【swift】UITextViewでリアルタイム文字数チェック
はじめに
やりたかったのはタイトルの通り。javascriptでやるような感覚でいけました
ひな型的に自分用にメモしておきます
実装
class SampleViewController: UIViewController, UITextFieldDelegate { var textField: UITextFiled = UITextField() var label: UILabel = UILabel() // 現在の文字数 var now: Int = 0 // 現在の文字数 var min: Int = 5 // 5文字以上 var max: Int = 20 // 20文字まで override func viewDidLoad() { ・・・ textField.delegate = self } // 登録ボタンが押された場合 func onSender(sender: UIButton) { if min <= count(textField.text) && count(textField.text) <= max { // 送信処理 } } // リアルタイム文字数カウント func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { var input: NSMutableString = textField.text.mutableCopy() as! NSMutableString str.replaceCharactersInRange(range, withString: string) self.now = count(String(input)) // 現在入力中の文字数 label.text = String(now) label.setNeedsDisplay() return true } }
こんな感じでしょうか。以外とサンプル少なかった印象です
以上です