2012-07-28 10 views
5

In meinem Tableviewcontroller mit einem SearchBar ich die folgende Methode verwenden:SearchBar textDidChange

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

und es funktioniert gut, wenn ich den Text direkt in die Suchleiste eingeben.

Das Problem, das ich jetzt habe, ist, dass ich diese Methode programmatisch aufrufen möchte - was bedeutet, dass ich die Suchleiste aus meinem Code, den ich weiß, ausfüllen soll (eigentlich wähle ich ein kürzlich gesuchtes Wort in meiner Sprache) wörterbuch anwendung) und rufen so etwas wie:

[SearchBar textDidChange: recentlySearchedWord] 

aber das funktioniert einfach nicht von überall in meinem Code.

Bitte helfen Sie mir, wenn Sie eine Idee haben, wie Sie das lösen können.

Danke,

Tim

Antwort

7

Wenn Sie UISearchBar der Delegatmethode - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText in Ihrem View-Controller (oder jede Klasse) und die Sie anrufen möchten, dass die Methode aus der gleichen Klasse implementieren, die, was Sie wollen, ist zu ich gehe davon aus, würden Sie

[self searchBar:SearchBar textDidChange:recentlySearchedWord]; 

mit SearchBar ist die Instanz des UISearchBar Sie verweisen verlangen.

+0

Vielen Dank. Das ist genau das, was ich gesucht habe :) – user1454623

+0

wie machst du das in swift? –

+0

@JosephAstrahan meinst du: searchBar (searchBar, textDidChange: recentlySearchedWord) –

1

textDidChange ist keine Klassenmethode. Anstatt also Aufruf:

[SearchBar textDidChange: recentlySearchedWord]; 

Anruf

[self searchBar:mySearchBar textDidChange: recentlySearchedWord]; 

Oder wenn textDidChange in einer anderen Klasse ist, verwenden Sie die Klasseninstanz der Selbst insted.

-1

Sie könnten auch versuchen, diesen Code zu verwenden, wenn es etwas einfacher macht.

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

Er hat nicht nach HTML gefragt, weißt du! – Danh

Verwandte Themen