Một cách thanh lịch hơn là loại bỏ bàn phím khi người dùng chạm vào một nơi nào đó bên ngoài khung của bàn phím.
Đầu tiên, đặt chế độ xem ViewContoder của bạn thành lớp "UIControl" trong trình kiểm tra danh tính trong UIBuilder. Điều khiển kéo chế độ xem vào tệp tiêu đề của ViewContoder và liên kết nó dưới dạng một hành động với sự kiện như Touch Up Inside, chẳng hạn như:
ViewControll.h
-(IBAction)dismissKeyboardOnTap:(id)sender;
Trong tệp ViewContoder chính, ViewControll.m:
-(IBAction)dismissKeyboardOnTap:(id)sender
{
[[self view] endEditing:YES];
}
Bạn có thể yêu cầu chạm hai lần hoặc chạm dài bằng các kỹ thuật tương tự. Bạn có thể cần đặt ViewContoder của mình thành UITextViewDelegate và kết nối TextView với ViewContoder. Phương pháp này hoạt động cho cả UITextView và UITextField.
Nguồn: Nông trại Big Nerd
EDIT: Tôi cũng muốn thêm rằng nếu bạn đang sử dụng UIScrollView, kỹ thuật trên có thể không hoạt động dễ dàng thông qua Trình tạo giao diện. Trong trường hợp đó, bạn có thể sử dụng UIGestureRecognizer và gọi phương thức [[self view] endEditing: YES] trong đó. Một ví dụ sẽ là:
-(void)ViewDidLoad{
....
UITapGestureRecognizer *tapRec = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(tap:)];
[self.view addGestureRecognizer: tapRec];
....
}
-(void)tap:(UITapGestureRecognizer *)tapRec{
[[self view] endEditing: YES];
}
Khi người dùng gõ bên ngoài bàn phím và không nhấn vào không gian nhập, bàn phím sẽ tắt.