作為一個xcode的新手,筆者今天卡在一個畫面相當久
诶........不好意思,請問我該怎麼關掉這個鍵盤
起初我一直認為一定是我沒用過iphone跟他不熟不會操作
抑或是模擬器少了什麼鈕可以按
尋尋覓覓了許久....我放棄,還是請出google大神吧
不料在01上看到了這麼一篇
WTF!!?只是要關閉一個鍵盤居然得使用密技!?
同時在搜尋結果中看到了一個"Cxxxa輕鬆收起你的iPhone鍵盤"的app
連這種app都出現了,我更加確定的相信這個結論........
iPhone的鍵盤沒有讓你收起它的地方!!!
好吧,介面上辦不到,我從程式裡動手總行吧
接下來才是今天的重點
怎麼收鍵盤?
其實只是很簡單的一個method
[self.tbTime resignFirstResponder];
tbTime是我的TextField
我有兩個TextField可能造成這個鬼擋牆的鍵盤
所以就是
[self.tbLength resignFirstResponder];
[self.tbTime resignFirstResponder];
不用特別去判斷TextField是否有focus,沒有focus呼叫這method也不會怎樣
接著就是觸發的時機點了
搜尋鈕的Click事件是一定要的,事件裡複製貼上就好了
接著額外衍生的問題來了
大部分查到的做法都是利用背景Click的時候來縮鍵盤
但我整個畫面都被MapView佔領了,背景就那麼一點點
且MapView沒有Click事件可以用耶
這時就要靠UITapGestureRecognizer這東西了
先直接奉上程式
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleGesture:)];
tgr.numberOfTapsRequired = 1;
[self.myMap addGestureRecognizer:tgr];
[self refreshLocationData];
}
這段是說,我在load的時候宣告了一個UITapGestureRecognizer
handleGesture做的事情如下
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer
{
[self.tbLength resignFirstResponder];
[self.tbTime resignFirstResponder];
}
就是剛剛隱藏鍵盤的那兩行啦
接著指定這個tgr觸發的tap次數,我們希望點一下就縮鍵盤,所以是1
最後再將tgr新增到MapView中就大功告成啦!!
沒有留言:
張貼留言