2017-02-03 3 views
0

Je rencontre un problème avec le inputAccessoryView après TOUTE autre vue a été pivotée. Par exemple: 1) aller à l'affichage A et faire pivoter le paysage 2) puis revenir au mode portrait.
3) aller voir BSwift inputAccessoryView non attaché au clavier après rotation

en vue BI ont le code ci-dessous pour attribuer un inputAccessoryView à un UITextField Cependant, après avoir fait pivoter une vue dans l'application, la vue accessoire se fixe toujours en haut de l'écran et non le haut du clavier. Si je ne fais pas pivoter une vue, la vue des accessoires est attachée à la partie supérieure du clavier comme prévu.

Voici le code utilisé pour créer et attribuer la inputAccessoryView, il est appelé à partir de la viewDidLoad

func addDoneButtonOnKeyboard(){ 

    let doneToolbar = UIToolbar(frame: CGRect(x:0, y:0, width:320, height:50)) 
    doneToolbar.barStyle = UIBarStyle.blackTranslucent 
    doneToolbar.isTranslucent = true 

    let flexSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, 
            target: nil, 
            action: nil) 

    let doneButton = UIBarButtonItem(title: "Done", 
            style: UIBarButtonItemStyle.done, 
            target: self, 
            action: #selector(MyVC.doneButtonAction)) 

    doneToolbar.setItems([flexSpace,doneButton], animated: false) 
    doneToolbar.sizeToFit() 
    doneToolbar.autoresizingMask=UIViewAutoresizing.flexibleWidth 

    self.myTextFild.inputAccessoryView = doneToolbar 
} 

J'ai cherché SO mais ne voit pas d'autres questions/réponses similaires ....

+0

http://stackoverflow.com/questions/8140520/how-should-i-get-my-inputaccessoryview-to-resize-when-rotating-device vérifiez que cela pourrait vous donner un indice sur la façon d'observer le changement d'orientation et d'ajuster le cadre. –

+0

@Sneak J'ai essayé de redimensionner le cadre comme il a été suggéré plusieurs postes SO, mais cela n'a pas résolu le problème. – rmp

+0

Si vous avez correctement ajusté la taille de l'image et la position sur les rotations de l'appareil alors je ne sais pas où le problème pourrait être, vous devriez peut-être mettre à jour la question avec vos méthodes de redimensionnement et de repositionnement. . –

Répondre

1

Dans mon cas, l'inputView était une datePicker et j'ai eu le même problème. La solution pour moi était:

textFieldDate.inputView?.autoresizingMask = [.flexibleHeight, .flexibleWidth] 

Je ne sais pas si cela aide aussi bien pour vous, parce que vous utilisez un clavier comme inputView, mais peut-être aide à d'autres avec des problèmes de Datepicker.