今日の結論
- TextViewDelegateのshouldChangeTextInRange()の中で、改行文字("\n")が入力された場合、キーボードを閉じる
↓こんな感じ↓
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange,
replacementText text: String) -> Bool {
if text == "\n" {
textView.resignFirstResponder() //キーボードを閉じる
return false
}
return true
}
経緯
iOSアプリ開発で、改行させたくないTextViewを配置する作業を行いました。
そこまで躓きはしなかったのですが、備忘録として・・・
これもやっておこう
キーボードのreturn(改行)ボタン
右下のボタンが「return(改行)」と表記されるため、
改行を無効とする動作を行うときの表記としてはふさわしくない。
キーボードを「Done(完了)」ボタンに変更
「return」の表記を変更するには、ソースコード内で下記の処理を行う
textView.returnKeyType = .Done
※ Interface Builder上でも変更できそうですね。
[TextView] -> [Return Key]
その他
return、Done以外にも下記の変更が可能なようです。
enum UIReturnKeyType : Int {
case Default
case Go
case Google
case Join
case Next
case Route
case Search
case Send
case Yahoo
case Done
case EmergencyCall
}
Defaultに該当するのが、returnのようですね。キーボードの目的にあったTypeを選択しましょう!