iOS關閉螢幕小鍵盤
我們常常在設計UI畫面的時候,會希望User輸入完一個資料欄位後可以關閉小鍵盤(自動或被動皆可),iPhone並不像Android有一個回上一動作的按鈕,因此我們會希望讓User隨意點選一個地方就自動關閉螢幕小鍵盤。在實際操作的過程中,發現有兩個物件的使用方式有點不太相同,因此我在下面會針對這兩個物件進行說明。
首先先說兩個通用的方法resignFirstResponder呼叫resignFirstResponder,這個方法可以讓物件回到初始. 狀態,因此,可以讓虛擬鍵盤關閉。因此我們可以寫一個共用的Event來讓所有的TextField來使用。
控制項UIViewUIView控制項本身並沒有辦法响應Touch Event,因此必須先將物件改成UIControl才有辦法繼續操作下去,下面的語法就是對應的關閉螢幕小鍵盤事件。
控制項UIScrollViewUIScrollView控制項又更特別了,沒有辦法將Class調整成UIControl,因此網路上稍微Google了一下,找到其他替代方案,但此方法必須要拉動ScrollBar才會將小鍵盤隱藏。
首先先說兩個通用的方法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]; }
留言
張貼留言
您好,我是 Lawrence,這裡是我的開發筆記的網誌,如果你對我的文章有任何疑問或者有錯誤的話,歡迎留言讓我知道。