2016-07-30 21 views
1

Ich entwickle eine iPhone-App, in der ich einige benutzerdefinierte Auswahl im Falle eines Ereignisses Schaltfläche anzeigen muss. Aber ich möchte keine hartcodierten Werte für den Rahmen meiner benutzerdefinierten PickerView. Ich suchte und fand keyboardWillShow Benachrichtigung userInfo Methode, aber in meinem Fall zeige ich nicht Tastatur, so kann Rahmen nicht daraus bekommen. Kann mir jemand helfen, einen Tastaturrahmen zu bekommen, den ich für meinen Customize-Picker benutzen kann?Get Keyboard frame ohne keyboardWillAppear userinfo Benachrichtigung, iOS

+2

Was? Du kannst nicht. Sie möchten, dass Ihre PickerView den gleichen Frame wie die Tastatur hat, ohne dass die Tastatur angezeigt wird. Stellen Sie dann Ihre PickerView auf die gleiche Höhe wie die Tastatur und die Breite des Bildschirms ein. Sie müssen die Constraint-Konstante oder Frame-Höhe-Konstante fest codieren. – Brandon

+0

Wozu? Ich stimme Brandon zu, Sie können einfach CGRect exakt mit passendem Tastaturrahmen codieren –

+0

Mögliches Duplikat von [Höhe der iOS-Tastatur abrufen, ohne die Tastatur anzuzeigen] (https://stackoverflow.com/questions/26981261/get-height-of-ios-keyboard -ohne Tastatur-Anzeige –

Antwort

2

Sie können eine UITextField verwenden und becomeFirstResponder anrufen und sofort resignFirstResponder darauf, so dass es angezeigt und ausgeblendet wird, ohne tatsächlich die Tastatur zu sehen.

die Aktionsmethode der Taste wird wie folgt aussehen:

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

Und Sie auf die Benachrichtigung hören konnte und die Höhe bekommen.

für weitere Informationen: Get height of iOS keyboard without UIKeyboardWillShowNotification