上方廣告

Lady Kukki 手作糖霜餅乾

2012年1月16日 星期一

iOS關閉螢幕小鍵盤

我們常常在設計UI畫面的時候,會希望User輸入完一個資料欄位後可以關閉小鍵盤(自動或被動皆可),iPhone並不像Android有一個回上一動作的按鈕,因此我們會希望讓User隨意點選一個地方就自動關閉螢幕小鍵盤。在實際操作的過程中,發現有兩個物件的使用方式有點不太相同,因此我在下面會針對這兩個物件進行說明。



首先先說兩個通用的方法resignFirstResponder呼叫resignFirstResponder,這個方法可以讓物件回到初始. 狀態,因此,可以讓虛擬鍵盤關閉。因此我們可以寫一個共用的Event來讓所有的TextField來使用。

//輸入完後按 return 會關閉螢幕鍵盤
- (IBActoin)textFieldDoneEditing:(id)sender
{
 [sender resignFirstResponder];
}


控制項UIViewUIView控制項本身並沒有辦法响應Touch Event,因此必須先將物件改成UIControl才有辦法繼續操作下去,下面的語法就是對應的關閉螢幕小鍵盤事件。
- (IBActoin)hiddenKeyBord:(id)sender
{
 [textFieldAccount resignFirstResponder];
 [textFieldPassword resignFirstResponder];
}


控制項UIScrollViewUIScrollView控制項又更特別了,沒有辦法將Class調整成UIControl,因此網路上稍微Google了一下,找到其他替代方案,但此方法必須要拉動ScrollBar才會將小鍵盤隱藏。
//必須繼承UIScrollViewDelegate
@interface MyClass  
{ 
}  

- (void)viewDidLoad 
{   
 layout_ScrollView.delegate = self; 
}  
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 
{   
 [textFieldAccount  resignFirstResponder]; 
 [textFieldPassword resignFirstResponder]; 
}