2010-03-18 6 views
2

J'ai une application avec la classe suivante:personnalisé UISearchBar

@interface SearchViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, UISearchBarDelegate> 
@property (nonatomic, retain) IBOutlet UISearchBar *search; 

Comment puis-je personnaliser UISearchBar? Je voudrais ajouter un bouton segmenté pour permettre les options de recherche (et/ou/phrase).

Répondre

7

Essayez ceci:

search.showsScopeBar = YES; 
search.scopeButtonTitles = [NSArray arrayWithObjects:@"Button",@"Titles",@"Go",@"Here",nil]; 

Cela vous donne le contrôle standard segmentée pour la recherche. Vous pouvez utiliser search.selectedScopeButtonIndex pour vérifier son état.

+3

merci. Je note pour les futurs lecteurs que vous devez également ajouter [search sizeToFit], sinon la barre de recherche affichera sa taille d'origine (je suis en train de configurer showsScopeBar dans viewDidLoad). – Matt

+0

Si vous voulez filtrer chaque étendue, à quoi ressemblera votre 'cellForRowAtIndexPath'? - J'ai une fonction de recherche et deux portée: 'City' et' Church', la fonction de recherche fonctionne, mais il affichera une cellule vide. Mon 'cellForRowAtIndexPath' ressemble à ceci:' if (tableView == self.searchDisplayController.searchResultsTableView) { if ([champ de recherche scopeButton]) { cell.textLabel.text = [[filteredResult objectAtIndex: indexPath.row] objectForKey: @ " Des endroits"]; } 'S'il vous plaît avis. – Jahm