Frage

Ich habe eine Tabelle und in einer der Zellen halte ich eine UITextView. Wenn der Benutzer tippt es erscheint die Tastatur. Ich habe versucht, verschiedene Möglichkeiten, um es loszuwerden. Mein erster Ansatz war es, einen Klaps auf die Tabellenzelle des UITextView zu erkennen, aber da der Text-Ansicht die meisten davon nimmt, ist es nicht geeignet. Dann habe ich versucht, eine Schaltfläche in der Symbolleiste hinzuzufügen, und wenn der Benutzer drückt, verschwindet das Keybord mit ResignFirstResponder, aber es wird nicht funktionieren. Es scheint, dass nur dann, wenn ich in der gleichen Ansicht bin wie der UITextView ResignFirstResponder funktioniert. Wie kann ich also von der Tastatur aus einer anderen Sicht loswerden?

Danke.

War es hilfreich?

Lösung

Die Methode unten verwendet die Return-Taste die UITextView Tastatur zu schließen.

In dem Controller, stellen Sie die Delegierten des UITextView Selbst wie folgt aus:

myTextView.delegate=self;

Dann diese Methode hinzufügen:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
 replacementText:(NSString *)text
{
 // Any new character added is passed in as the "text" parameter
 if ([text isEqualToString:@"\n"]) {
  // Be sure to test for equality using the "isEqualToString" message
  [textView resignFirstResponder];

  // Return FALSE so that the final '\n' character doesn't get added
  return FALSE;
 }
 // For any other character return TRUE so that the text gets added to the view
 return TRUE;
}

Das sollte funktionieren, wenn Sie nicht die Return-Taste als echte Return-Taste (zum Beispiel neue Zeilen hinzufügen).

Andere Tipps

Was meinst du mit „es wird nicht funktionieren“. Wenn txtView ist Ihr UITe4xtView, tun Sie bedeuten, dass die Taste mit einer Aktion verknüpfen, das hat [txtView ResignFirstResponder] nicht funktionieren? Ich habe diesen Code verwendet, vor und es funktioniert für mich

Ohne die Größe der Kontrollen zu wissen, noch die Absicht, es ist ein bisschen schwer, eine solide Empfehlung zu machen. Wenn Sie jedoch sind für eine Nur-Lese-Textansicht suchen, warum nicht einen UILabel? Wenn es viele schreibgeschützten Text enthält los ist und Sie Rich-Formatierung benötigen, sollten Sie eine UIWebView mit Formatierung.

Natürlich könnte diese Antwort völlig ungeeignet sein. Können Sie Ihre Absichten, vielleicht zeigt einen Screenshot der App-in-progress (ungenutzte, natürlich)?

klären

versuchen, die 'Editierbare' Option im Text unchecking Ansichtsattribute Fenster im Interface Builder.

Dies stoppt die Tastatur nicht angezeigt werden, wenn der Benutzer auf Ihrem Textview klickt

ich habe Verwendung für diese Art von Problem, die folowing Methode

- (BOOL)textFieldShouldReturn: tf_some_text_field {

[tf_some_text_field resignFirstResponder];
[tf_another_text_field_in_the_same_view resignFirstResponder];

return YES;
}

hoffe, es hilft ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top