2016-07-30 2 views
1

Je développe une application iPhone dans laquelle je dois montrer un sélecteur de personnaliser dans le cas d'un événement de bouton. Mais je ne veux pas de valeurs codées en dur pour le frame de mon pickerView personnalisé. J'ai cherché et trouvé keyboardWillShow la méthode userInfo de notification, mais dans mon cas je ne montre pas le clavier ainsi ne peux pas obtenir l'armature hors de lui. Quelqu'un peut-il m'aider à sortir pour obtenir le cadre de clavier que je peux utiliser pour mon sélecteur de personnaliser?Obtenir le cadre du clavier sans notification keyboardWillAppear userinfo, iOS

+2

Quoi? Tu ne peux pas. Vous voulez que votre pickerView ait le même cadre que le clavier sans jamais afficher le clavier. Ensuite, faites votre picker. Regardez la même hauteur que le clavier et la largeur de l'écran. Vous devrez coder en dur la constante de contrainte ou la constante de hauteur de trame. – Brandon

+0

Pour quoi faire? Je suis d'accord avec Brandon, vous pouvez simplement coder CGRect cadre de clavier correspondant exactement –

+0

Possible dupliquer de [Obtenir la hauteur du clavier iOS sans afficher le clavier] (https://stackoverflow.com/questions/26981261/get-height-of-ios-keyboard -avec-affichage-clavier) –

Répondre

2

Vous pouvez utiliser un UITextField et appeler becomeFirstResponder et immédiatement resignFirstResponder dessus, ainsi il sera montré et caché sans réellement voir le clavier.

la méthode d'action du bouton ressemblera à ce qui suit:

@IBAction func showPickerView(sender: AnyObject) 
{ 
    let textField = UITextField() 
    view.addSubview(textField) 
    textField.becomeFirstResponder() 
    textField.resignFirstResponder() 
    textField.removeFromSuperview() 
} 

Et vous pouvez écouter la notification et obtenir la hauteur.

pour plus d'informations: Get height of iOS keyboard without UIKeyboardWillShowNotification