Das Anzeigen von UIMenuController verliert die Tastatur

7

Ich mache eine iPhone App ähnlich der Nachrichten App, die auf dem Telefon kommt. Ich habe nur die Möglichkeit eingerichtet, Nachrichten über einen UIMenuController zu kopieren, aber wenn die Tastatur angezeigt wird und jemand versucht, eine Nachricht zu kopieren, verschwindet die Tastatur (vermutlich wegen meiner [cell becomeFirstResponder]; , wobei cell die kopierte Nachrichtenzelle ist) .

Gibt es eine Möglichkeit, die Nachricht zum Kopieren anzuzeigen, ohne die Tastatur zu verlieren?

%Vor%     
Stephen 05.12.2011, 02:25
quelle

2 Antworten

16

Ich habe dieses Dilemma gelöst, indem ich UITextView unterklassifiziert habe, um eine Möglichkeit zu bieten, den nextResponder zu überschreiben und die eingebauten Aktionen (Einfügen) zu deaktivieren, wie etwa:

%Vor% %Vor%

Überprüfen Sie dann in Ihrem Handler für Gestenaktionen, ob die Textansicht bereits der erste Responder ist. Wenn ja, muss es den nächsten Responder überschreiben; Ansonsten ist die Tastatur wahrscheinlich sowieso ausgeblendet und du kannst einfach becomeFirstResponder . Sie müssen die Überschreibung auch zurücksetzen, wenn das Menü ausgeblendet wird:

%Vor%

Die Verwendung der in iOS 5 eingeführten Delegate-Methoden für die Tabellenansicht ( shouldShowMenuForRowAtIndexPath usw.) war für mich keine Lösung, da ich die Positionierung des Menüs steuern musste (standardmäßig ist es einfach horizontal über der Zelle zentriert, aber ich zeige Nachrichtenblasen an und wollte, dass das Menü über der tatsächlichen Blase zentriert ist.

    
neon1 10.11.2012 18:04
quelle
7

In iOS 5 können Sie jetzt die Delegate-Methoden der Tabellenansicht verwenden, um den Menü-Controller anzuzeigen:

%Vor%

Wenn der Menü-Controller auf diese Weise angezeigt wird, wird die Tastatur nicht zurückgesetzt.

Ich bin immer noch neugierig darauf, da ich eine App habe, die vor iOS 5 unterstützt, dass ich gerne das tun würde, was du auch sagst (die Tastatur nicht verlassen, wenn das Kopiermenü erscheint).

    
Keller 02.03.2012 22:14
quelle