我正在我的應用程序的導航欄中創建一個UISearchBar選項。 我的應用程序由多個視圖和子視圖組成。 我有這個主視圖對自己有3個其他視圖。其中一個是空的(現在),另外兩個有桌面瀏覽。當失去焦點在uisearchbar上時退出鍵盤
我想讓我的鍵盤在搜索時顯示,當我進行實際搜索時隱藏,或者當我觸摸/在外部觸摸條上單擊時隱藏。 按需要使用searchbardelegate。
我可以通過以下方式使用[searchBar resignFirstResponder]隱藏鍵盤。
- 當我按回車鍵。
- 當我手動取消搜索
- 當我按任何鍵盤按鈕來搜索或取消。
當我撫摸使用
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [[event allTouches] anyObject]; if ([mySearchBar isFirstResponder] && [touch view] != mySearchBar) { [mySearchBar resignFirstResponder]; } [super touchesBegan:touches withEvent:event]; }
似乎什麼我不能夠做的就是它撫摸我的2個tableviews的一個迴應屏幕的空白部分。或者當我重新填充主視圖來完全包含不同的東西時。
我試着改變touchesbegan方法來在觸摸tableviews時退出搜索欄,但它迄今還沒有工作。
我嘗試了一些其他的東西,我的親愛的朋友先生髮現了。谷歌,但它似乎都是我需要的東西。
任何人有任何想法,我可以做什麼來解決這個問題?
編輯: 它似乎是這樣的,當使用斷點時,touchesbegan方法確實對backgroundview做出響應,但當我觸摸tableview或導航欄(包含uisearchbar)時,它不響應。