selbst.delegate = self; was ist falsch damit?
selbst.delegate = self; was ist falsch damit?
und was ist der richtige Weg, es zu tun?
Dank, Nir.
Code:
(UITextField*)initWith:(id)sender:(float)X:(float)Y:(float)width:(float)hieght:(int)textFieldTag {
if (self = [super initWithFrame:CGRectMake(X, Y,width, hieght)]) {
finalText = [[NSMutableString alloc] initWithString:@""];
senderObject = sender;
self.textColor = [UIColor blackColor];
self.font = [UIFont systemFontOfSize:17.0];
self.backgroundColor = [UIColor whiteColor];
self.autocorrectionType = UITextAutocorrectionTypeNo;
self.keyboardType = UIKeyboardTypeDefault;
self.returnKeyType = UIReturnKeyDone;
self.clearButtonMode = UITextFieldViewModeWhileEditing;
self.tag = textFieldTag;
self.delegate = self;
[sender addSubview:self];
}
return self;
}
Hinweise: Dies ist ein text Feld, und wenn ich die Einstellung, dass die Stellvertretung ein anderes Objekt (self).delegieren = mainView) funktioniert alles einwandfrei, aber dann habe ich implementieren müssen, um die delegate-Methoden in der mainView, und ich möchte, um Sie in sich selbst (ein uiTextField-Klasse, die ich erstellt haben). Wenn ich die Einstellung selbst.delegate = self, bekomme ich ein textField, aber die Tastatur wird nicht angezeigt.
- bitte klären: Warum willst du wissen, dass ich falsch ist. Was passiert
- Hi. Dies ist ein text Feld, und wenn ich die Einstellung, dass die Stellvertretung ein anderes Objekt (self).delegieren = mainView) funktioniert alles einwandfrei, aber dann habe ich implementieren müssen, um die delegate-Methoden in der mainView, und ich möchte, um Sie in sich selbst (ein uiTextField-Klasse, die ich erstellt haben). Wenn ich die Einstellung selbst.delegate = self, bekomme ich ein textField, aber die Tastatur wird nicht angezeigt.
- Kommentar Hinzugefügt von OP in Frage.
- UITextView ist einzigartig, nicht in der Lage, dies zu tun. die Lösung ist einfach, stackoverflow.com/a/13338493/294884
Du musst angemeldet sein, um einen Kommentar abzugeben.
Siehe diesen thread
http://www.cocoabuilder.com/archive/cocoa/241465-iphone-why-can-a-uitextfield-be-its-own-delegate.html#241505
Grundsätzlich der Grund für das "einfrieren", wenn Sie auf Ihre UITextField-mit sich selbst als Delegierter ist, dass
respondsToSelector
ist das sich -> unendliche Rekursion.UITextField ist einzigartig, soweit ich weiß. Sie können in der Regel verwenden Sie eine Klasse als seine eigenen Delegierten mit keine besonderen Probleme. Für die UITextField-Sie müssen erstellen Sie eine tatsächliche Stellvertretung (könnte, natürlich, rufen Methoden auf die UITextField, für die Sie einen Delegaten sind. Nur vorsichtig sein, zu vermeiden, behalten Schleifen, auch wenn Sie mit ARC).