Frage

Im Moment arbeite ich an einer App mit dieser Struktur:

Ich habe einen View-Controller, die wir Mainviewcontroller nennen, die alle Touch-Ereignisse für die Anwendung verarbeitet. Mainviewcontroller hat als Instanzvariable, eine Ansicht genannt canvasView. canvasView hat als UITextView genannt hiddenTextView.

Theres andere unsichtbare Ansichten und solche so UITextView nicht die erste ist, berührt registrieren.

Wie erhalte ich die UITextView berührt in dieser Konfiguration registrieren? Im einzelnen Auswahlen aus der autoCorection Box zu machen (eigentlich seiner für japanische Kanji-Auswahl, aber ich nehme an seinen einen ähnlichen Mechanismus).

Ich habe versucht:

[canvasView.hiddenTextView touchesBegan: berührt Withevent: event]

von dem touchesBegan Methode des Mainviewcontroller. Ich habe dies getan, für touchesBegan, verschoben und beendet.

Ich denke, es ist eigentlich für einen von den 50 oder so laufe ich habe es versucht, aber ich weiß nicht, was ich geändert.

Alle Ideen, wie ich dies kann zu arbeiten?

War es hilfreich?

Lösung

[canvasView.hiddenTextView becomeFirstResponder];

wird wahrscheinlich tun, was Sie wollen.

Die Responder-Kette auf dem iPhone ist eine etwas heikle Sache. Ich finde, es ist in der Regel einfacher zu vermeiden Kontrollen überlappen, so dass zu jedem gegebenen Fall ist es ganz eindeutig, wie, an den Steuereingang empfängt, von dem berührt.

Wenn Sie eine Menge von Kontrollen sind überlappend, und oft Umschalten zwischen denen diejenigen versteckt oder sichtbar, das ist ein gutes Zeichen, dass Sie vielleicht nur mehr Subklassen von UIViewController zu implementieren, und wechseln zwischen denen statt aus in Swapping und die Kontrollen. Eine weitere Option ist, um benutzerdefinierte Unterklassen von UIView zu machen und diejenigen, die in der und aus statt tauschen -. Womit ich meine, eigentlich die alten aus dem Subview entfernen (nicht versteckt), und das Hinzufügen der neuen

Natürlich gibt es einige Zeiten, in denen Ein- / Ausblenden ist nur viel einfacher als Subclassing.

Ich hoffe, das hilft. Referenz:

scroll top