20
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TextViewキーボード入力の改行を無効にする(キーボードを閉じる)

Posted at

今日の結論

  • 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(改行)ボタン

デフォルトのキーボードを使用すると
キャプチャ.png

右下のボタンが「return(改行)」と表記されるため、
改行を無効とする動作を行うときの表記としてはふさわしくない。

キーボードを「Done(完了)」ボタンに変更

「return」の表記を変更するには、ソースコード内で下記の処理を行う

textView.returnKeyType = .Done

キャプチャDone.png
「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を選択しましょう!

20
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?