So blenden Sie inputAccessoryView ohne Entlassungen Tastatur
Bin ich über eine Symbolleiste in der inputAccessoryView Eigenschaft einer textView. Wenn die Tastatur zeigt, es zeigt die Symbolleiste als erwartet. Wenn das Gerät gedreht wird möchte ich die Symbolleiste entfernen. Ich habe versucht:
myTextView.inputAccessoryView.hidden = !layoutIsPortrait;
Bedeutet dies die Symbolleiste auszublenden, lässt aber die Gliederung der größeren Tastatur hinter sich. Die Tastatur ist anscheinend immer noch Größe anpassen der Symbolleiste. Es sieht schlecht aus und stört mit touch-Ereignissen zugrunde liegende ansprechen.
myTextView.inputAccessoryView = nil;
Funktioniert nur, wenn ich resignFirstResponder, dann becomeFirstResponder wieder. Das ist nicht akzeptabel. Ich verliere die cursor-Platzierung und dem Inhalt der textView, Tastatur blinkt hin und wieder.
[myTextView.inputAccessoryView removefromSuperview];
Überhaupt nichts macht.
Ich rettete einen Verweis auf die Symbolleiste in einem iVar und angesprochen, statt,
[myIvarReference removeFromSuperview];
Funktioniert, aber wieder die größeren Umrisse der Tastatur ist schwach sichtbar. Dieses mal ist es nicht stören mit einem Hauch von anderen Ansichten. Also das ist jetzt eine funktionierende Lösung, aber optisch nicht akzeptabel.
Was kann ich sonst noch versuchen, um zu zeigen und verstecken sich die inputAccessoryView?
Screenshot - die dünne Linie über der Tastatur ist ein überbleibsel von der Symbolleiste entfernt
Ich habe eine nahaufnahme der screenshot
Ich kann das nicht testen Sie es jetzt aber tut myTextView.inputAccessoryView.frame = CGRectZero tun, was du suchst?
Ich kann nicht versuchen, es im moment auch. Ich erwarte, dass wäre das gleiche Ergebnis, wie removeFromSuperView. Meine Vermutung ist, dass es die Ansicht, dass darunter die Tastatur und die Symbolleiste zusammen, muss die Größe angepasst. Ich weiß nicht, wie ich veranlassen würde, dass das geschehen, ohne sich in einige der privaten api-Gebiet.
InformationsquelleAutor Dean Davids | 2012-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser entfernt die Symbolleiste aus der Ansicht und lädt die Ansicht neu. Auf diese Weise brauchen Sie nicht zu rufen resignFirstResponder und becomeFirstResponder. Zusätzlich wird noch immer die cursor-Platzierung und Inhalt.
InformationsquelleAutor Eric Appel
Für mich Eric ' s Lösung eigentlich nie zurückgesetzt, der frame oder das touch-Bereiche. Vermutlich ist es ein bug, wie Apple behandelt Dinge. Allerdings fand ich ein workaround, der das problem bei mir gelöst. Wenn ich einen neuen inputAccessoryView ohne Rahmen, reloadInputViews geklappt:
InformationsquelleAutor jungziege
Keiner der oben genannten Antworten waren für mich zu arbeiten und reloadInputViews verursacht seltsame Probleme. Schließlich habe ich es zum ein-und ausblenden und haben berührt passthrough by doing:
Verstecken:
Zeigen es:
InformationsquelleAutor sudo
Nie einen Weg gefunden, das zu ändern und den Rahmen der Tastatur. Letztlich entschied zu verzichten inputAccessoryView, meine toolbar direkt auf die Ansicht als unteransicht und animiert mich zusammen mit der Tastatur direkt. Dies hält die zwei unabhängig und so, nicht mehr Online.
InformationsquelleAutor Dean Davids
Xamarin-code ist
es war nur jungziege, die Antwort neu geschrieben für xamarin..................................
Dann Attribut deine Antwort als solche, so etwas wie "Umwandlung Jungziege Antwort auf C# und Xamarin Erträge..." Insbesondere in dem Fall, wo deine Antwort baut auf jemand anderes beantworten, ist es sinnvoll und höflich zu Referenz die original-Antwort so gut.
InformationsquelleAutor shane
Basiert auf Eric Appel ' s Antwort:
Weiter ändern:
Diese ausblenden soll InputAccessoryView auch wenn die Tastatur ist zurückgetreten.
InformationsquelleAutor Eric
Seltsamerweise keiner dieser Ansätze gearbeitet, in meinem Fall.
Ich habe eine searchcontroller, die öffnet sich ein standard-Apple-iOS-Tastatur, wenn Sie einen bestimmten Suchbereich ausgewählt ist, und eine benutzerdefinierte Tastatur-Ansicht mit einer Auflistung Sicht als input-Feld in den Fällen, in andere Bereiche ausgewählt werden.
In beiden Fällen kann ein unerwünschtes Zubehör Ansicht auf dem Bildschirm gezeichnet werden, wenn die input-Ansicht angezeigt wurde.
So,
und verschiedene Kombinationen davon etc, etc.
Was funktionierte war zu löschen, um die einzelnen Zubehör-Artikel aus dem Zubehör-Sicht:
InformationsquelleAutor BlueskyMed
funktioniert für mich, Einstellung
inputAccessoryView
zunil
wird nicht funktionieren, ich weiß nur nicht, warum.InformationsquelleAutor yuchen