2013-09-24 48 views
3

我正在更新我的iOS 7應用程序,並且我的一個功能允許搜索欄搜索按鈕被激活,搜索欄中沒有任何文本停止工作。我使用了下面的代碼。有關如何使其重新工作的建議?提前致謝。在Xcode5/iOS7中搜索沒有文本的UISearchBar

UITextField *searchBarTextField = nil; 
for (UIView *subview in self.searchBar.subviews) 
{ 
    if ([subview isKindOfClass:[UITextField class]]) 
    { 
     searchBarTextField = (UITextField *)subview; 
     break; 
    } 
} 
searchBarTextField.enablesReturnKeyAutomatically = NO; 
+0

你可以在這裏找到答案:http://stackoverflow.com/a/18855175/1032762 –

回答

6

在iOS 7中有一個小的變化,現在你必須迭代兩個級別。

for (UIView *subView in self.searchBar.subviews){ 
    for (UIView *secondLeveSubView in subView.subviews){ 
    if ([secondLeveSubView isKindOfClass:[UITextField class]]) 
     { 
      searchBarTextField = (UITextField *)2ndLeveSubView; 
      break; 
     } 
    } 
    } 
+0

這工作。謝謝! – user1681673

+0

不客不行 –

+0

有用。蘋果絕對應該增加一個屬性來做到這一點。 – Lensflare

1

這是一個使用Swift的解決方案。只需將其粘貼到您的viewDidLoad函數中,並確保您在代碼中具有您的searchBar的IBOutlet。 (下面我舉例來說,inputSearchBar變量是IBOutlet中)

// making the search button available when the search text is empty 
    var searchBarTextField : UITextField! 
    for view1 in inputSearchBar.subviews { 
     for view2 in view1.subviews { 
      if view2.isKindOfClass(UITextField) { 
       searchBarTextField = view2 as UITextField 
       searchBarTextField.enablesReturnKeyAutomatically = false 
       break 
      } 
     } 
    } 
+0

謝謝你的這個@RSC。我想知道什麼是「searchBarTextField」。我想你可能忘記聲明: 'let searchBarTextField = view2 as UITextField' 謝謝,無論如何,這是我尋找的答案。 –

+0

Quentin,我在第一行代碼行中聲明瞭它:var searchBarTextField:UITextField! – rsc

3

有直接在搜索欄的選項enablesReturnKeyAutomatically。

searchbar.enablesReturnKeyAutomatically = NO;