5

searchBarを使用したtableViewControllerで、次のメソッドを使用しています。

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

searchBarにテキストを直接入力すると正常に機能します。

私が今抱えている問題は、このメソッドをプログラムで呼び出したいということです。つまり、実行方法を知っているコードから検索バーに入力したいということです(実際には、言語辞書アプリケーションで最近検索した単語を選択しています)。次のようなものを呼び出します:

 [SearchBar textDidChange: recentlySearchedWord]

しかし、これは私のコードのどこからでも機能しません。

これを解決する方法がわかれば、私を助けてください。

ありがとう、

ティム

4

3 に答える 3

7

ビューコントローラ(または任意のクラス)にUISearchBarのデリゲートメソッドを実装- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchTextし、同じクラス内からそのメソッドを呼び出したい場合、これは私が想定していることですが、呼び出す必要があります

[self searchBar:SearchBar textDidChange:recentlySearchedWord];

SearchBarは、参照しているUISearchBarのインスタンスです。

于 2012-07-28T16:08:44.410 に答える
1

textDidChangeはクラスメソッドではありません。したがって、呼び出す代わりに:

[SearchBar textDidChange: recentlySearchedWord];

電話

[self searchBar:mySearchBar textDidChange: recentlySearchedWord];

または、textDidChangeが別のクラスにある場合は、selfの代わりにクラスインスタンスを使用します。

于 2012-07-28T16:56:40.900 に答える
-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>

于 2016-10-30T15:21:08.563 に答える