【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
}
}こんな感じでしょうか。以外とサンプル少なかった印象です
以上です