Nhận biết khi người dùng chạm ra ngoài ô nhập liệu để ẩn bàn phím
Một vấn đề trong việc nhận dữ liệu nhập từ người thông qua các control (ví dụ như UITextField ) là phải nhận biết được người dùng chạm ra ngoài control để ẩn bàn phím
Tạo một project mẫu trên XCode, kéo 2 UITextField vào StroryBoard như hình:
Trong phần interface (.h) khai báo 2 hàm như sau:
[code language=”c”]
– (IBAction)onDimissKeyboard:(id)sender;
– (void)handleBackgroundTap: (UITapGestureRecognizer *)sender;
[/code]
Trong implement (.m)
Thêm đoạn code sau vào hàm VỉewDidLoad
[code language=”c”]
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleBackgroundTap:)];
tapRecognizer.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:tapRecognizer];
[/code]
Tiếp đó, trong hàm onDimissKeyboard, thêm vào:
[cpp]
[sender resignFirstResponder];
[/cpp]
và hàm handleBackgroundTap thêm:
[cpp]
[keywordTextField resignFirstResponder];
[textField resignFirstResponder];
[/cpp]
với keywordTextField và textField là 2 UITextField control bạn cần tạo reference từ 2 control trên Storyboard.
Chạy thử project và tap vào UITextField control, keyboard sẽ hiện lên. Khi tap ra ngoài thì keyboard sẽ ẩn đi.
0 Comments