searchBar textDidChange



在带有searchBar的tableViewController中,我使用以下方法:

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

当我直接在searchBar中键入文本时,它工作得很好。

我现在遇到的问题是,我想用程序调用这个方法——这意味着我想从我知道如何做的代码中填充搜索栏(实际上,我在语言词典应用程序中选择了一个最近搜索的单词),并调用类似的东西:

 [SearchBar textDidChange: recentlySearchedWord]

但这在我的代码中根本不起作用。

如果你知道如何解决这个问题,请帮助我。

谢谢,

Tim

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

[self searchBar:SearchBar textDidChange:recentlySearchedWord];

SearchBar是您所引用的UISearchBar的实例。

textDidChange不是一个类方法。因此,与其呼叫:

[SearchBar textDidChange: recentlySearchedWord];

调用

[self searchBar:mySearchBar textDidChange: recentlySearchedWord];

或者,如果textDidChange在不同的类中,则使用类实例代替self。

如果这段代码更容易,您也可以尝试使用它。

<!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>

最新更新