在带有searchBar的tableViewController中,我使用以下方法:
-(void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
...my code
}
当我直接在searchBar中输入文字时,它可以正常工作。
我现在遇到的问题是我想以编程方式调用此方法 - 这意味着我想从我的代码填写搜索栏,我知道该怎么做(实际上我在我的语言词典中选择一个最近搜索过的单词应用程序)并调用类似的东西:
[SearchBar textDidChange: recentlySearchedWord]
但这在我的代码中的任何地方都无效。
如果您对如何解决这个问题有所了解,请帮帮我。
谢谢,
添
答案 0 :(得分:7)
如果你在视图控制器(或任何类)中实现UISearchBar的委托方法- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
,并且你想从同一个类中调用该方法,这就是你想要做的,我假设,你' d必须致电
[self searchBar:SearchBar textDidChange:recentlySearchedWord];
SearchBar 是您正在引用的UISearchBar的实例。
答案 1 :(得分:1)
textDidChange不是类方法。所以不要打电话:
[SearchBar textDidChange: recentlySearchedWord];
呼叫
[self searchBar:mySearchBar textDidChange: recentlySearchedWord];
或者如果textDidChange位于不同的类中,请使用self自己的类实例。
答案 2 :(得分:-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>