Question

Avec l’iPhone SDK 3.0, je souhaite autoriser la saisie de texte avec les options d’achèvement (facultatives) apparaissant au moment de la frappe, c’est-à-dire autoriser la saisie au format libre. En tant que tel, j'utilise un UISearchBar (qui contient les événements de modification de texte) et un UISearchDisplayController pour présenter les options.

Le problème est que je veux que le bouton DONE indique DONE et non SEARCH, mais je ne trouve pas le moyen de le définir. Clairement, j’ai le sentiment que quelque chose me manque ou qu’Interface Builder de l’API du SDK aurait une propriété à définir.

J'ai vu d'autres applications (dans le magasin) qui ont obtenu le résultat souhaité (entrée au format libre, achèvement, bouton TERMINÉ). Il se peut donc qu'une approche alternative me manque. Merci d’avance pour tous les conseils.

Était-ce utile?

La solution

+1 Pour la réponse de wal, mais par mesure de sécurité et pour réagir correctement aux modifications possibles de la hiérarchie des vues dans les versions ultérieures, envisagez d'utiliser ce code:

NSArray *subviews = [<searchBar> subviews] ;
for(id subview in subviews) {
    if([subview isKindOfClass:[UITextField class]]) {
        [(UITextField*)subview setReturnKeyType:UIReturnKeyDone];
    }
}

Autres conseils

Je devais mettre en œuvre exactement cela et je ne pouvais pas trouver de bonnes réponses nulle part ... alors j'ai pensé vous donner un aperçu. Parcourir le débogueur et creuser dans UISearchBar est assez évident. Je viens de finir de trouver UITextView dans les sous-vues uisearchbar et à ce moment-là, vous devriez pouvoir définir le type returnkey sur cet UITextView une fois que vous avez reçu un descripteur.

Psuedocode- UISearchBarObject.SubViewAtIndexOfUITextField.ReturnKeyType = UIReturnKeyType.Done

Mettez ce code dans viewDidLoad.

- (void)viewDidLoad {
...

NSArray *subviews = [self.searchDisplayController.searchBar subviews] ;
UITextField *searchField = [subviews objectAtIndex:([subviews count]-2)];
[searchField setReturnKeyType:UIReturnKeyDone];

...
}

Bizarre, UISearchBar devrait prendre en charge l’interface UITextInputTraits comme UITextField et UITextView (il ne le dit pas dans la documentation) et devrait donc avoir returnKeyType . Je l'essayerais quand même.

Si ce n'est pas le cas, l'un des objets utilisés par UISearchBar a cette option.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top