Für die Konstante UIKeyboardFrameEndUserInfoKey
, in der Apple-Dokumentation heißt es:Konvertieren UIKeyboardFrameEndUserInfoKey Anzeigen oder Fensterkoordinaten
Diese Koordinaten berücksichtigen nicht jede Drehung Faktoren auf die als Folge der Schnittstelle Ausrichtung des Fensters aufgebracht Inhalte ändert sich. Daher müssen Sie das Rechteck möglicherweise in das Fenster Koordinaten konvertieren (mit der Methode convertRect: fromWindow:) oder Koordinaten anzeigen (mit der Methode convertRect: fromView:), bevor Sie es verwenden.
Also, wenn ich [view1 convertRect:rect fromView:view2]
Was würde ich für die oben genannten Parameter einfügen, um es richtig die Rotationswerte zu konvertieren? dh:
view1 =? rect =? (der Tastaturrahmen nehme ich an) view2 =?
Sie haben einige Dinge versucht und einige lustige Sachen bekommen.
verwendet werden Hoffe, dass die Antwort unten hilft. Ich habe vorher auch 'convertRect' verwendet, aber der Code unten ist sauberer, IMO. – memmons
Offensichtlich stimme ich @Answerbot nicht zu, was "sauberer" ist :) BTW der Code, den ich zeige, stammt aus meinem Buch, das Sie in dieser Angelegenheit konsultieren können: http://www.apeth.com/iOSBook/ ch23.html # _summoning_and_dismissing_the_keyboard – matt
@matt Gute Sachen. Ich habe eines deiner Bücher gelesen und es hat mir sehr gefallen. Der Grund, warum ich die Verwendung von 'convertRect' aufgehört habe, ist, dass es nur innerhalb eines View-Controllers funktioniert, wo Sie eine' myView' haben, die die oberste Ansicht darstellt. Wenn Sie jedoch auf Benachrichtigungen innerhalb einer UITextField-Unterklasse warten, ist die Umwandlung mithilfe von self nicht besonders hilfreich. – memmons