2011-11-04 14 views
6

Possiedo un semplice controller di visualizzazione con una barra uisearch e un . Il mio problema è che quando la barra di ricerca è sfruttato vedo funzione delegata searchBarShouldBeginEditing chiamato ma non searchBarTextDidBeginEditing (e per questo tastiera non viene aperto e ricerca non è modificabile)UISearch bar non chiama searchBarTextDidBeginEditing

ho cercato di implementare la funzione delegata searchBarShouldBeginEditing ritorno sI, searchbar impostato come prima responder, ma nessun modo ottengo searchBarTextDidBeginEditing chiamato ...

Qualsiasi idea di quello che potrebbe accadere ??

Alcuni codice:

controller.h

@interface ViewController : UIViewController <UISearchBarDelegate> 
{ 
    UISearchBar * searchbar; 
} 

@property (nonatomic, retain) IBOutlet UISearchBar* searchbar; 

@end 

controller.m

@synthesize searchbar; 

- (BOOL)respondsToSelector:(SEL)sel { 
    NSLog(@"Queried about %@", NSStringFromSelector(sel)); 
    return [super respondsToSelector:sel]; 
} 

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 
    NSLog(@"searchBarShouldBeginEditing -Are we getting here??"); 
    return YES; 
} 
-(void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar { 
    NSLog(@"searchBarTextDidBeginEditing -Are we getting here??"); 
} 

Di cousrse mia classe hanno un sacco più codice (che sicuramente sta interessando in qualche modo Searchbar), ma se qualcuno ha problemi simili con la barra di ricerca sarebbe molto apprezzata la sua risposta;)

Ho provato a fare semplice applicazione con solo searchbar e, ovviamente, funziona ...

EDITING:

Prova un po 'ho scoperto che non è qualcosa legato con UISearchBar come ho aggiunto un TextField ottenere lo stesso risultato (solo funzione di delegato textFieldShouldStartEditing essere chiamato)

applicazione ha tutte controller di vista all'interno di una cotroller UITabBar, ma non credo che questo può causare tutto questo casino ...

EDITING2:

Davvero strano comportamento: Impostare la funzione IBAction all'atterraggio caso di UITextField funziona perfettamente, ma impostando la funzione IBAction a EditingDidBegin non viene mai licenziato ...

Perché questo evento non potrebbe essere chiamato ??

+0

Puoi pubblicare i tuoi codici? – Raptor

+0

Sto avendo il comportamento opposto sulla mia barra di ricerca. Ottengo searchBarTextDidBeginEditing ma non searchBarShouldBeginEditing ... Forse Apple ha incasinato qualcosa nell'ultimo SDK? Quale SDK stai usando? – Mark

+0

Mi dispiace, ma non ho più il codice ... Penso di averlo risolto ricreando l'intero progetto (e ancora non so cosa stesse facendo errori in quel primo.) –

risposta

13

hai impostato la proprietà delegato?

searchbar.delegate = self; 
+0

Ho fatto entrambe le cose attraverso il generatore di interfacce, e codice throught (ed entrambi allo stesso tempo XD) Ad ogni modo non penso che questo sia il problema visto che una funzione delegate viene chiamata (searchBarShouldBeginEditing).Grazie per la risposta, a proposito! –

0

Forse si chiama da qualche parte [searchbar resignFirstResponder]. Era il caso nel mio problema simile.