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