我有這個問題UISearchDisplayController
。我想在專門的視圖中使用它來處理搜索。對於我的控制器類,我使用了搜索欄,searchcontroller和tableviewcontroller的組合。 SearchViewController鏈接到.xib
。UISearchDisplayController:取消作爲解僱按鈕
@interface SearchViewController : UIViewController <UISearchBarDelegate, UISearchDisplayDelegate, UITableViewDelegate, UITableViewDataSource> {
NSSet *words;
UISearchDisplayController *searchController;
UISearchBar *searchBar;
PhraseTableViewController *phraseTableViewController;
}
只要SearchViewController
出現時,搜索欄變得firstresponder和搜索因此活性。一切看起來和工作正常,有一個例外: 爲了回到以前的觀點,我想使用SearchBar的取消按鈕。現在問題來了:如果用戶在沒有進行搜索時觸摸底層tableview的灰色區域,取消按鈕(並因此返回的唯一方法)消失。
這是我一直在努力,解決這一事:
showsCancelButton = YES
上searchDisplayControllerDidEndSearch
。工程,但由此產生的UI很糟糕:取消按鈕轉換出來,然後重新出現。- 在搜索控制器的
searchResultTableView
中添加一個UITapGestureRecognizer
,希望能夠捕獲水龍頭。不起作用,它仍然通過。 - 子類
UISearchBar
並覆蓋self.searchController.searchBar setShowsCancelButton:
- 沒有工作。
想法如何解決這個問題:
- 總是隱藏取消按鈕,而是添加自定義按鈕。問:你有一個想法如何做到這一點,使用戶界面看起來不錯?最令我關注的是處理所有這些情況,使得搜索文本框始終保持在按鈕旁邊。
- 溝渠
UISearchDisplayController
一起爲一個更靈活的解決方案。你知道在哪裏看? Pre-iOS 3這個控制器不存在,對嗎?周圍沒有解決方案仍然有效嗎?
我很高興爲您的任何輸入。提前致謝。
你試過'searchDisplayControllerWillEndSearch'中的'showsCancelButton = YES'嗎? – Felix 2012-07-10 12:45:50
是的,沒有效果。隱藏取消按鈕的事件必須在'willEndSearch'和'didEndSearch'之間激發。 – 2012-07-10 13:01:54