2010-08-26 60 views
0

我正在尋找一種方法來啓用鍵盤上的「搜索」按鈕,即使在搜索欄的文本字段在當時不包含文本時也是如此。即使搜索欄文本框爲空,也啓用「搜索按鈕」

背景是,隨着在搜索欄的文本字段中輸入的術語,我會發送其他信息到我的後端。搜索一個空術語將是有意義的(在我的範圍內)..

有沒有什麼辦法可以解決這個問題?

THX提前,

SAM

回答

2

當它變爲活動狀態時,您可以嘗試在搜索文本字段的開頭添加隱形字符。 A Zero-width space可能是正確的。

- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController*)controller 
{ 
    NSLog(@"Starting search"); 
    controller.searchBar.text = @"\u200B"; 
} 

您可能希望它像這樣的東西結合起來,防止表數據的重新加載:

- (BOOL)searchDisplayController:(UISearchDisplayController*)controller shouldReloadTableForSearchString:(NSString*)searchString 
{ 
    return ![searchString isEqualToString:@"\u200B"]; 
} 
+0

我喜歡那些黑客!非常感謝! – samsam 2010-08-27 07:26:45

-1

這將是一個更好的主意,只是有一個按鈕或鏈接,「全部顯示」或一些類似的事情。

0

它在iOS的8

在您的viewDidLoad很簡單:

self.searchBar.enablesReturnKeyAutomatically = false 

但是對於8之前的iOS版本,您應該將UISearchBarDelegate設置爲您的searchBar,並且t母雞覆蓋searchBarTextDidBeginEditing(我的銀行代碼,可以很容易地將其轉換成Objective-C代碼):

func searchBarTextDidBeginEditing(searchBar: UISearchBar) { 

    searchBar.setShowsCancelButton(true, animated: true) 

    var searchBarTextField : UITextField? = nil 
    for mainview in searchBar.subviews 
    { 
     for subview in mainview.subviews { 
      if subview.isKindOfClass(UITextField) 
      { 
       searchBarTextField = subview as? UITextField 
       break 
      } 
     } 
    } 
    searchBarTextField!.enablesReturnKeyAutomatically = false 
}