76
70

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.

iOSでキーボードを閉じる方法各種

Posted at

iOSでキーボードを閉じる方法ですが、いくつか存在します。

UITextField / UITextViewに指示する方法

最も一般的かと思いますが、ファーストレスポンダーであるUITextFieldやUITextViewのresignFirstResponder()を実行します。

特定のUITextFieldやUITextViewの状態を変更することができるという特徴があります。

textField.resignFirstResponder()

UIViewに指示する方法

ファーストレスポンダーであるUITextFieldやUITextViewが載っているUIViewのendEditing(:)を実行します。

どのUITextFieldやUITextViewがファーストレスポンダーかを知る必要がありません。

view.endEditing(true)

Key Windowに指示する方法

Key WindowのendEditing(:)を実行します。

表示しているビューのコントローラを知らなくてもキーボードを閉じることができます。

UIApplication.sharedApplication().keyWindow?.endEditing(true)

UIApplicationに指示する方法

UIApplicationのsendAction(:,to:from:forEvent:)を実行します。toにnilを渡すことで、現在のファーストレスポンダーに対してメソッドを実行することができることを利用しています。

Windowより上層のUIApplicationを利用することができます。

UIApplication.sharedApplication().sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, forEvent: nil)

UIScrollViewのkeyboardDismissModeを利用する方法

iOS7以降では、スクロールビューやテーブルビューを利用している場合に、それらをドラッグしたりキーボードを下にドラッグした時にキーボードを閉じるように設定できます。

scrollView.keyboardDismissMode = .OnDrag
scrollView.keyboardDismissMode = .Interactive
76
70
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
76
70

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?