2011-07-19 71 views
1

我收到了一堆搜索框。在搜索框下面有tableviews。我們可以改變nextResponder嗎?

如果用戶點擊桌面視圖(或搜索框外的任何內容),我希望搜索框失去第一響應者狀態。

但是,tableview並沒有觸及動作。

所以我在tableview後面添加一個大按鈕。希望觸摸事件可以通過大按鈕來處理。

鑑於表視圖完全覆蓋tableview,這是行不通的。

那我該怎麼辦?

回答

1

我不確定您是使用searchDisplayController還是僅使用searchBar。但在你使用searchDisplayController情況下,就可以實現的委託方法

-(void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller 

當用戶點擊取消或透明的視圖(空搜索)將被調用。

解決你的問題的另一種方法是設置bool來檢查搜索框是否保留響應者(當搜索獲取響應者時設置它)。並在cellForRowAtIndexPath,檢查該值,並resignFirstResponder和設置值爲false。

希望這有助於

更新:蘋果的sample code使用searchDisplayController

+0

我不太知道如何使用鑑於searchDisplayController,我將不得不子類化searchDisplayController吧? –

+0

您可以根據需要使用委託並實現委託方法,然後在IB中拖動searchDisplayController並掛鉤。它與搜索欄幾乎相同,除了它有額外的功能 – REALFREE

相關問題