4

Cela me cause vraiment des crises. Je vois beaucoup d'informations sur la mise en place d'un UISearchBar dans la rangée supérieure d'un UITableView - mais je place l'UISearchBar dans la barre d'outils en haut de mon écran (sur l'iPad). Je ne trouve rien concernant la façon de gérer UISearchBar et UISearchDisplayController en utilisant un UIPopoverController sur l'iPad. Toute information sur le UISearchDisplayController en utilisant un UIPopoverController serait grandement appréciée. S'il vous plaît aidez avec ceci comme je suis à la fin de mon esprit.Impossible d'obtenir UISearchBar Scope Bar à apparaître dans la barre d'outils (ou n'importe où) sur l'iPad

En utilisant IB, j'ai mis une barre d'outils sur le IUView sur l'iPad. J'ai ajouté ce qui suit: Search Bar (pasSearch Bar and Search Display) à la barre d'outils. J'ai réglé les options comme suit: Afficher le bouton Annuler, Afficher la barre d'étendue, Les titres du bouton d'étendue sont: "Titre1" et "Titre2" (avec le bouton radio Titre2 sélectionné). Opaque, Clear Context et Auto Resize sont cochés. J'ai branché le délégué de Search Bar au "propriétaire du fichier" et l'ai lié à IBOutlet theSearchBar.

Dans mon viewWillAppear j'ai les suivantes:

//Just in case: 
    [theSearchBar setScopeButtonTitles:[NSArray arrayWithObjects:@"Near Me",@"Everywhere",nil]]; 
    //Just in case (again): 
    [theSearchBar setShowsScopeBar:YES]; 
    //doesn't seem to do anything: 
    //[theSearchBar sizeToFit]; 

    searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:theSearchBar contentsController:self]; 
    [self setSearchDisplayController:searchDisplayController]; 
    [searchDisplayController setDelegate:self]; 
    [searchDisplayController setSearchResultsDataSource:self]; 
    //again--does not seem to do anything..but people have suggested it: 
    [theSearchBar sizeToFit]; 

Bon, jusqu'à présent, je pensais que, si bon. Donc, j'ai fait le fichier propriétaire du fichier .m pour être un délégué pour: UISearchBarDelegate, UISearchDisplayDelegate.

Mon problème: Je dois encore implémenter les délégués nécessaires pour faire la recherche mais encore ... ne devrais-je pas voir le scopeBar à côté du champ de recherche lorsque je clique dans le champ de recherche? Juste pour que vous sachiez que je vois le journal des caractères que je tape, donc le délégué est de travail.

Voici une routine que je l'habitude de vérifier si IB a vraiment mis la barre Scope (UISegementedControl) dans la barre de recherche:

for (UIView *v in theSearchBar.subviews) 
{ 
    if ([v isMemberOfClass:[UISegmentedControl class]]) 
    {    
     // You've got the segmented control!     
     UISegmentedControl *scope = (UISegmentedControl *)v; 
     // Do your thing here... 
     NSLog(@"Found Scope: '%@'\n",scope); 
     NSLog(@"Scope Segments: '%d'\n",[v numberOfSegments]); 
    } 
} 

Cela montre:

[30013:207] Found Scope: '<UISegmentedControl: 0x68a06b0; frame = (0 0; 200 44); opaque = NO; layer = <CALayer: 0x68a0600>>' 
[30013:207] Scope Segments: '2' 

Alors, je sais que la 2 segments sont là. Je sais aussi qu'ils ne se présentent pas ... Qu'est-ce que je fais mal?

Pourquoi la barre d'étendues n'apparaît-elle pas? Un résultat UIPopoverController apparaît avec le titre "Résultats" et "Aucun résultat trouvé" (bien sûr) quand je tape le premier caractère dans ma recherche ... mais pas de barre de portée. (Pas que j'attends autre chose que « Aucun résultat trouvé ».

Je am se demander où la barre de champ est censé apparaître ... dans le titleview du UIPopover? Dans la barre d'outils à droite de la recherche région? Où?

Répondre

0
[self.searchDisplayController searchBar] setScopeButtonTitles:[NSArray arrayWithObjects:@"Near Me",@"Everywhere",nil]]; 

cela pourrait aider.

0

UISearchBar ne l'affiche pas est portée lorsqu'il est incorporé dans un UIToolbar, cela est vrai même dans iOS 7.

Vous devez construire votre propre UISegment et ajoutez-le dans la vue de table des résultats de recherche ou créez votre propre vue pour contenir l'UISearchBar qui afficherait l'étendue.

Questions connexes