2010-12-07 81 views
5

我有一個UISearchBar作爲UIToolbar中的UIBarButtonItem嵌套。基本功能正常,但取消按鈕和範圍欄拒絕顯示。我試着在界面生成器中啓用它們,我也嘗試過手動調用[searchBar setShowsCancelButton:YES],但這兩種方法都不起作用。有任何想法嗎?UIToolbar中的UISearchBar不會顯示取消按鈕

這是在iPad上。我在iOS 3中嘗試過,但它在4.2中也不起作用。

回答

3

您只是在UISearchBar的工作方式上遇到了限制。一種解決方法是將UISearchBar覆蓋在UIToolbar上,而不是真正在工具欄中生存。這可以直觀地工作,因爲搜索欄就像工具欄一樣被繪製 - 它們的漸變是相同的。

11

您需要用另一個視圖來包裝UISearchBar。

UISearchBar *searchBar = [UISearchBar new]; 
UIView *searchBarContainer = [[UIView alloc] initWithFrame:searchBar.frame]; 
[searchBarContainer addSubview:searchBar]; 
UIBarButtonItem *searchBarItem = 
    [[UIBarButtonItem alloc] initWithCustomView:searchBarContainer]; 
0

是否真的有必要在搜索欄中使用取消按鈕?只需使用textDidChange方法來查看該字符串是否已被清除,並使用該方法來執行取消操作。

+1

所以你在說當用戶刪除最後一個字符時,鍵盤應該關閉並編輯結束?這似乎是應用程序的狂妄行爲。 – SG1 2013-09-23 02:51:58

相關問題