2012-07-28 13 views
5

W moim tableViewController z searchBar używam następujący sposób:searchBar textDidChange

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

i działa dobrze, kiedy wpisać tekst bezpośrednio do paska wyszukiwania.

Problem w tym, że chcę wywołać tę metodę programowo - co oznacza, że ​​chcę wypełnić pasek wyszukiwania z mojego kodu, który wiem, jak to zrobić (aktualnie wybieram ostatnio wyszukiwane słowo w moim języku aplikacji słownika) i wywołaj coś w stylu:

[SearchBar textDidChange: recentlySearchedWord] 

ale to po prostu nie działa z dowolnego miejsca w moim kodzie.

Proszę mi pomóc, jeśli masz pomysł, jak rozwiązać ten problem.

Dzięki,

Tim

Odpowiedz

7

W przypadku zastosowania metody UISearchBar za delegata - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText w kontroler widoku (lub dowolnej klasy) i chcesz wywołać tę metodę z tej samej klasy, co jest, co chcesz jestem przy założeniu zrobić, trzeba by zadzwonić

[self searchBar:SearchBar textDidChange:recentlySearchedWord]; 

z SearchBar będąc instancją UISearchBar którego się odnosisz.

+0

dzięki. Właśnie tego szukałem :) – user1454623

+0

jak to robisz w szybkim tempie? –

+0

@JosephAstrahan masz na myśli: searchBar (searchBar, textDidChange: recentlySearchedWord) –

1

textDidChange nie jest metodą klasy. Więc zamiast dzwonić:

[SearchBar textDidChange: recentlySearchedWord]; 

wezwanie

[self searchBar:mySearchBar textDidChange: recentlySearchedWord]; 

Lub jeśli textDidChange jest w innej klasie, użyj instancja klasy insted siebie.

-1

Możliwe, że spróbujesz użyć tego kodu, jeśli ułatwi to cokolwiek.

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

Nie pytał o html, wiesz! – Danh

Powiązane problemy