2010-06-09 12 views
7

Hej, pracowałem nad aplikacją opartą na nawigacji na iPhonie, podobnie jak w aplikacji Kontakty. Gdy wprowadzisz coś na pasku wyszukiwania i przewiniesz w tabeli (w aplikacji Kontakty), klawiatura zniknie. Nie sądzę jednak, aby zrezygnował z pierwszej odpowiedzi, ponieważ gdy próbuję to zrobić w - (void) scrollViewDidScroll: (UIScrollView *) scrollView, wyłącza przycisk anulowania, co nie ma miejsca w aplikacji Kontakty. Zasadniczo moje pytanie brzmi: jak odrzucić klawiaturę bez wyłączania przycisku anulowania, tak jak w aplikacji Kontakty?Odrzucanie klawiatury za pomocą UISearchBar, bez konieczności udzielania pierwszej odpowiedzi

Dzięki

+1

WOW. Haha, samouczek, którego użyłem, nie używał kontrolera searchdisplaycera, z jakiegokolwiek powodu ... Używanie go sprawia, że ​​robi dokładnie to, co chcę. To zabawne, ponieważ dopasowałem nawet mroczne cierpienie nakładki, które zdarza się, gdy zaczynasz szukać, ale teraz zdarza się dwa razy, więc robi się naprawdę ciemno. – Mike

Odpowiedz

3

Cóż, po prostu wpadł na to bardzo stare pytanie. Można włączyć przycisk 'Anuluj', gdy zaczniesz przewijać następująco:

func scrollViewWillBeginDragging(scrollView: UIScrollView) { 
    searchBar.resignFirstResponder() 
    let searchCancelButton = searchBar.valueForKey("cancelButton") as! UIButton 
    searchCancelButton.enabled = true // <-- THIS line is the trick 

} 

Swift 4

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { 
    searchBar.resignFirstResponder() 
    let cancelButton = searchBar.value(forKey: "cancelButton") as! UIButton 
    cancelButton.isEnabled = true 
} 
+0

Tak! To naprawdę działa! –

+0

Doskonała odpowiedź. Zaktualizowano składnię dla Swift 4 –

Powiązane problemy