2012-07-28 139 views
5

在我tableViewController与我使用下面的方法搜索栏:搜索栏textDidChange

-(void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 
    ...my code 
} 

,当我直接键入文本搜索栏能正常工作。

我现在的问题是,我想以编程方式调用此方法 - 这意味着我想从我的代码中填充搜索栏,我知道该怎么做(实际上,我正在选择一种最近搜索的语言,以我的语言字典应用程序),并调用类似:

[SearchBar textDidChange: recentlySearchedWord] 

但是这根本不从任何地方在我的代码工作。

请帮助我,如果你有一些想法如何解决这个问题。

感谢,

回答

7

如果您实现您的视图控制器的UISearchBar的委托方法- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText(或任何一类),你要调用该方法从同一个类,这是你想要什么范围内做我假设,你必须调用

[self searchBar:SearchBar textDidChange:recentlySearchedWord]; 

搜索栏是你引用的的UISearchBar的实例。

+0

非常感谢。这正是我正在寻找的:) – user1454623 2012-07-29 22:01:11

+0

你如何在swift中做到这一点? – 2016-04-11 10:21:11

+0

@JosephAstrahan你的意思是:searchBar(searchBar,textDidChange:recentSearchedWord) – 2016-08-03 08:11:59

1

textDidChange不是类方法。因此,而不是调用:

[SearchBar textDidChange: recentlySearchedWord]; 

呼叫

[self searchBar:mySearchBar textDidChange: recentlySearchedWord]; 

或者,如果textDidChange是在不同的类,使用类的实例insted的自我。

-1

您也可以尝试使用此代码,如果它使任何事情更容易。

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<style> 
 
input[type=text] { 
 
    width: 100%; 
 
    box-sizing: border-box; 
 
    border: 2px solid #ccc; 
 
    border-radius: 4px; 
 
    font-size: 16px; 
 
    background-color: white; 
 
    background-image: url('searchicon.png'); 
 
    background-position: 10px 10px; 
 
    background-repeat: no-repeat; 
 
    padding: 12px 20px 12px 40px; 
 
} 
 
</style> 
 
</head> 
 
<body> 
 

 
<p>Input with icon:</p> 
 

 
<form> 
 
    <input type="text" name="search" placeholder="Search.."> 
 
</form> 
 

 
</body> 
 
</html>

+4

他没问过html,你知道! – Danh 2016-10-30 15:41:19