[iPhone-SDK] [Newbie] UITextView textViewDidChange nicht genannt werden?
Habe ich eine kleine iPhone-Projekt mit einem UITextView auf meinem View, entworfen in den Interface Builder. Es gibt eine IBAction-Methode in meiner Viewcontroller und ich mit der UITextView zu, dass IBAction. Ich habe auch in meinem controller .h die <UITextViewDelegate>
.
In meine .m-Datei habe ich noch die Methode:
- (void)textViewDidChange:(UITextView *)textView{
int count = [textView.text length];
charCount.text = (NSString *)count;
}
Aber wenn die App läuft und ich etwas in die textView, die Methode textViewDidChange nie erreicht werden. Warum ist das so?
Ich habe auch versucht zu textView hinzufügen.delegate = self in der ViewDidLoad-Methode, aber dann stürzt die App ohne Meldung im Debugger.
Hat jemand einen Tipp, was ich falsch mache?
Danke, dass Sie so viel
twickl
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist auf der richtigen Spur - der Grund, warum die Methode nicht immer genannt, dass Sie nicht die Einstellung der text-Ansicht delegieren, bevor Sie Sie ändern Ihren text. Ich merke in deiner Frage sagen Sie, Sie versuchte, zu
testView.delegate = self;
- meinst dutextView
? Oft Tippfehler wie Absturz wird das Programm ohne debugger Meldung.Auch, die
textFieldDidChange:
Methode ist nicht definiert in der UITextFieldDelegate Protokoll. Sie kann gemeinttextField:shouldChangeCharactersInRange:replacementString:
- dies ist die delegate-Methode, die eigentlich aufgerufen wird, wenn ein text-Feld ändert seinen Inhalt. Einfach verbinden Sie Ihre eigene Methode, um eine IBAction nicht garantieren, was ich denke, Sie wollen.Wenn keiner von denen ein problem, dann müssen Sie gehen Sie zurück und überprüfen Sie alle Ihre verschiedenen verbindungen, sowohl in der IB und in Ihrer Klasse header-Datei. Ihre Kopfzeile sollte dann wie folgt Aussehen:
Und Ihre Umsetzung:
Wichtige Dokument in diesem Fall ist die UITextFieldDelegate Protokoll Referenz.
textView
Ausgang des view-controller zum view selbst in IB?)Oh, ich habe gemerkt was falsch!
charCount musst auf diesem Weg gesetzt werden:
Jetzt funktioniert es!