Iphone için programlamayı öğrenirken deneyimlerimi bu blogda paylaşacağım.

Thursday, 22 October 2009

TextField ve Klavyeyi kapatma

Ekranda bir textfield varken, textfield üstünde touch event oluştuğunda textfield firstResponder durumuna gelir ve klavye açılır.

Klavyenin kapatılması için [textField resignFirstResponder] mesajının yollanması gerekir. Bu mesaj ile klavye kapatılır.

İyi bir kullanıcı deneyimi için bu mesaj hem klavyede Return tuşuna click lendiği zaman hemde ekranda herhangi bir yere touch işlemi yapıldığı zaman yollanmalıdır.

Bu işlem için textField ' in delegate inde aşağıdaki metod eklenmelidir.


-(BOOL)textFieldShouldReturn:(UITextField*) theTextField {
if (theTextField == textField) {
[textField resignFirstResponder];

}
return YES;
}

Bu metodun eklendiği class (genellikle ViewController veya View) UITextFieldDelegate protokolünü uyguluyor olmalıdır.


View ' da herhangi bir yere touch işlemi yapıldığında klavyenin kapatılması için ise aşağıdaki metod gereklidir.


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch * touch = [touches anyObject];
    if(touch.phase == UITouchPhaseBegan) {
        [self.textField resignFirstResponder];
    }
}

No comments:

Post a Comment