UISearchBar de l'Annuler et Effacer les Boutons ne fonctionne Pas sous iOS 7
J'ai un projet xCode qui contient une tableview avec une “Barre de Recherche et la Recherche de Contrôleur d'Affichage” pour permettre à l'utilisateur d'affiner la liste d'éléments affichés. En général, les orientations fournies dans http://www.raywenderlich.com/16873/how-to-add-search-into-a-table-view a été suivie. J'ai récemment téléchargé la dernière version de xCode (Version 5.0 (5A1413)) avec iOS 7 prise en charge et ont été le test de l'application en question sur des cibles différentes.
Lors de l'exécution de cette application sur iOS 6 cible (émulateur ou un périphérique réel), il fonctionne comme prévu sens qu'en appuyant sur le bouton annuler supprime la barre de recherche et en appuyant sur le bouton clear (peu de gris x) efface tous les critères de recherche déjà tapé par l'utilisateur. Mais lorsque le projet est exécuté sur un iOS 7 cible à la fois clair et bouton annuler ne fonctionne pas.
La searchBarCancelButtonClicked méthode est mise en œuvre dans ce projet, et j'ai vérifié qu'il n'est pas appelé lorsque la cible est en cours d'exécution iOS 7.
- (void)searchBarCancelButtonClicked:(UISearchBar *)SearchBar
{
NSLog(@"searchBarCancelButtonClicked called");
self.searchBar.text = nil;
…
//Hide Search bar when cancelled
[self hideSeachBar];
[self.searchBar resignFirstResponder];
…
}
Ma table-vue-contrôleur est configuré pour être le UISearchDisplayDelegate et UISearchBarDelegate. Et il semble que c'est encore à travailler comme barre de recherche:textDidChange: est appelé sur un iOS 6 ou 7 cible.
@interface ItemViewController () <UISearchDisplayDelegate, UISearchBarDelegate>
…
@end
Je ne peut pas voir les autres messages liés à ce produit ou tout iOS 7 changement de matériel (comme https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/Bars.html#//apple_ref/doc/uid/TP40013174-CH8-SW1) qui parle de tout recoder qui doit être fait pour soutenir iOS7.
Des idées sur ce point? Grâce
Que le code du travail pour moi pour iOS7: stackoverflow.com/a/22287788/771689
OriginalL'auteur Mike | 2013-10-03
Vous devez vous connecter pour publier un commentaire.
J'ai le même problème, j'ai essayé avec le code suivant. Veuillez essayer celui-ci.
Bonjour Mike, À mon point de vue : iOS7 est fait automatiquement la mise en page pour sa nativité de windows. C'est la raison pour le problème qui nous ont été confrontés. Et encore une chose, j'ai essayé avec "l'auto.vue.cadre" au lieu de "auto.archiveListTblView.cadre". Même ce code aussi bien fonctionner pour moi. Donc, le problème était que nous n'avions pas de définir le cadre pour tableview. 😛
OriginalL'auteur Prabakaran
bouton Annuler bouton et Clair ne fonctionnera pas si vous appuyez sur le bouton de Recherche sur la navigation. Si vous tapez sur la barre de Recherche de l'étoile de la recherche, il fonctionne normalement
=> Cela signifie que, si la barre de recherche n'est pas visible sur l'écran avant de lancer la recherche, puis les boutons semblent comme désactiver trop.
De sorte que, j'ai trouvé une solution, mais il n'est pas totalement parfait.
Avant de vous faire une barre de recherche de devenir la première réponse, vous avez pour faire défiler la vue de la table vers le haut. Essayez ce code.
Le seul problème se produit si vous faites cela, votre tableau d'affichage fait défiler vers le haut, ce qui signifie que lorsque vous annulez la recherche, vous avez perdu actuelle de la cellule d'indice avant.
OriginalL'auteur nahung89
Ce problème semble venir de la nouvelle le comportement de l'translucide propriété dans une barre de navigation.
Depuis iOS 7 barres de navigation sont translucides par défaut. Et il semble que c'est qui se chevauchent dans la barre de recherche lorsque vous l'afficher après avoir appuyé sur un bouton. Si vous faites défiler vers le haut de votre listView et utilisez la barre de recherche, il devrait fonctionner correctement.
Essayer de mettre dans votre contrôleur:
Cela devrait résoudre rapidement le problème.
Mais je pense que pour une meilleure fix vous devriez voir le iOS 7 guide de transition où ils expliquent comment gérer translucide barres de navigation.
Espère que ça aide.
OriginalL'auteur André Rodrigues
J'ai eu ce problème aussi. Étrangement délégués d'autres méthodes de
UISearchBarDelegate
sont appelés. Une solution pourrait être:Il a travaillé pour moi
OriginalL'auteur Sanandrea
J'ai googlé tous les cours sur internet et impossible de trouver une solution. j'ai donc changé le UItableview comportement.
au lieu de
[searchBar becomeFirstResponder];
j'ai faites défiler la tableview.dans mon ViewDidload:
Trouvé si pour certaines raisons, dans iOS 7 , changer la vue de la table des limites de cause barre de recherche à disparaître.
Espérons que cela aide.
OriginalL'auteur Kiddo
Dans mon cas, j'avais positionné la barre de recherche en haut de l'écran, et il était invisible, point de vue qui est superposé sur la barre de recherche.
Ainsi, bouton d'annulation n'a pas été touché en fait.
Donc, j'ai introduit le seachbar à l'avant [searchBarTextDidBeginEditing] méthode a été appelée comme ci-dessous.
Espérant que cela puisse aider.
OriginalL'auteur Ahn Sejong