Cara yang lebih elegan adalah dengan mengabaikan keyboard saat pengguna mengetuk suatu tempat di luar bingkai keyboard.
Pertama, atur tampilan ViewController Anda ke kelas "UIControl" di inspektur identitas di UIBuilder. Kontrol-seret tampilan ke dalam file header ViewController dan tautkan sebagai tindakan dengan acara tersebut sebagai Touch Up Inside, seperti:
ViewController.h
-(IBAction)dismissKeyboardOnTap:(id)sender;
Dalam file ViewController utama, ViewController.m:
-(IBAction)dismissKeyboardOnTap:(id)sender
{
[[self view] endEditing:YES];
}
Anda dapat meminta ketuk dua kali atau sentuhan panjang menggunakan teknik serupa. Anda mungkin perlu mengatur ViewController Anda menjadi UITextViewDelegate dan menghubungkan TextView ke ViewController. Metode ini berfungsi untuk UITextView dan UITextField.
Sumber: Peternakan Nerd Besar
EDIT: Saya juga ingin menambahkan bahwa jika Anda menggunakan UIScrollView, teknik di atas mungkin tidak bekerja dengan mudah melalui Interface Builder. Dalam hal itu, Anda bisa menggunakan UIGestureRecognizer dan memanggil metode [[tampilan sendiri] endEditing: YES] sebagai gantinya. Contohnya adalah:
-(void)ViewDidLoad{
....
UITapGestureRecognizer *tapRec = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(tap:)];
[self.view addGestureRecognizer: tapRec];
....
}
-(void)tap:(UITapGestureRecognizer *)tapRec{
[[self view] endEditing: YES];
}
Ketika pengguna mengetuk di luar keyboard dan tidak mengetuk ruang entri, keyboard akan diberhentikan.