2010-06-09 13 views
7

Ehi, stavo lavorando a un'app di navigazione su iPhone simile all'app dei contatti. Quando si inserisce qualcosa nella barra di ricerca e si scorre nella tabella (nell'app Contatti), la tastiera scompare. Tuttavia, non penso che si dimetti primo risponditore, perché quando provo a farlo in - (void) scrollViewDidScroll: (UIScrollView *) scrollView, disabilita il pulsante cancel, che non avviene nell'app dei contatti. Fondamentalmente la mia domanda è: come posso ignorare la tastiera senza disattivare il pulsante Annulla, come nell'app Contatti?Rallentamento della tastiera con UISearchBar, senza dimissioni Primo soccorritore

Grazie

+1

WOW. Haha, il tutorial che ho usato non usava un searchdisplaycontroller, per qualsiasi ragione ... Usarlo fa sì che faccia esattamente ciò che voglio. È divertente, perché ho persino abbinato l'oscurità della sovrapposizione che accade quando inizi a cercare, ma ora succede due volte, quindi diventa davvero buio. – Mike

risposta

3

Beh, appena incontrato questa stessa vecchia domanda. È possibile attivare il pulsante 'cancella' quando si inizia a scorrere come segue:

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

Sì! Funziona veramente! –

+0

Ottima risposta. Sintassi aggiornata per Swift 4 –

Problemi correlati