Ajouter UIToolBar à tous les claviers (swift)
Je suis en train d'ajouter des UIToolBar à tous mes claviers avec peu de répétitions. La façon dont je suis en train de faire, il me demande d'ajouter le code à tous mes viewDidLoads et d'assigner chaque textfield déléguée pour la viewController je suis en utilisant. J'ai essayé de créer mon propre UIToolBar sous-classe, mais je trouve que je ne peux pas vraiment le faire que lorsque la cible pour mes "Fait" et "annuler", les boutons sont à la vue de soi. Quelqu'un aurait-il des suggestions pour la création d'un facilement réutilisables barre d'outils? Merci à l'avance.
override func viewDidLoad() {
super.viewDidLoad()
var toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.Default
toolBar.translucent = true
toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Done, target: self, action: "donePressed")
var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelPressed")
var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.userInteractionEnabled = true
toolBar.sizeToFit()
stateField.inputAccessoryView = toolBar
stateField.delegate = self
source d'informationauteur Vivian
Vous devez vous connecter pour publier un commentaire.
Grâce à Glorfindel la suggestion et ncerezo exemple de code que j'ai résolu mon problème en utilisant des extensions.
Si j'ai toujours besoin d'appeler le code ci-dessous sur l'ensemble de mes objets textfield. Je me sens comme il peut y avoir une meilleure façon, sans avoir à faire appel à la fonction sur chaque champ, mais pour l'instant ce n'est certainement plus réutilisable.
équivalent de vivian version de swift 3:
J'ai un utilitaire qui j'ai été en utilisant un certain temps (porté à Swift de Objective-C) qui fait cela et un peu plus, vous trouverez peut-être utile:
https://github.com/ncerezo/SwiftKeyboardAccessory
Il crée une barre d'outils avec au moins un bouton "Terminé" pour fermer le clavier, et éventuellement les boutons Suivant et Précédent. Il prend également soin de renvoyer le clavier lorsque vous appuyez à l'extérieur de la zone de texte, et de redimensionner et de défilement de la vue lorsque le clavier apparaît ou disparaît.
Il est conçu pour fonctionner avec UITableVIew et aussi avec UIScrollView.
Vous pouvez faire un UIToolbar sous-classe travail en profitant de l'intervenant de la chaîne. Pas besoin de changer votre point de vue contrôleurs. Dans Swift 3:
Puis ajoutez les lignes suivantes à votre
applicationDidFinishLaunching
pour l'appliquer à toutes vos claviers: