auto.delegate = self; quel est le problème en fait?
auto.delegate = self; quel est le problème en fait?
et quelle est la façon correcte de le faire?
Merci, 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;
}
Notes: C'est un champ de texte, et quand je suis en train de le déléguer à un autre objet (de soi.délégué = mainView) tout fonctionne bien, mais ensuite je me mettre en œuvre le délégué méthodes de mainView, et je voudrais les mettre dans l'auto (un uiTextField classe qui j'ai créé). Si je suis en train de l'auto.delegate = self, je reçois un textField mais le clavier ne s'affiche pas.
veuillez préciser: Pourquoi savez-vous que j'ai est faux. Ce qui se passe
Salut. C'est un champ de texte, et quand je suis en train de le déléguer à un autre objet (de soi.délégué = mainView) tout fonctionne bien, mais ensuite je me mettre en œuvre le délégué méthodes de mainView, et je voudrais les mettre dans l'auto (un uiTextField classe qui j'ai créé). Si je suis en train de l'auto.delegate = self, je reçois un textField mais le clavier ne s'affiche pas.
Ajouté le commentaire de l'OP sur la question.
UITextView est unique à ne pas être capable de faire cela. la solution est simple, stackoverflow.com/a/13338493/294884
Salut. C'est un champ de texte, et quand je suis en train de le déléguer à un autre objet (de soi.délégué = mainView) tout fonctionne bien, mais ensuite je me mettre en œuvre le délégué méthodes de mainView, et je voudrais les mettre dans l'auto (un uiTextField classe qui j'ai créé). Si je suis en train de l'auto.delegate = self, je reçois un textField mais le clavier ne s'affiche pas.
Ajouté le commentaire de l'OP sur la question.
UITextView est unique à ne pas être capable de faire cela. la solution est simple, stackoverflow.com/a/13338493/294884
OriginalL'auteur Tiger | 2009-11-17
Vous devez vous connecter pour publier un commentaire.
Voir ce fil
http://www.cocoabuilder.com/archive/cocoa/241465-iphone-why-can-a-uitextfield-be-its-own-delegate.html#241505
Fondamentalement, la raison pour le "gel" quand vous cliquez sur votre UITextField avec lui-même en tant que délégué, c'est que
respondsToSelector
est d'appeler lui-même -> récursivité infinie.UITextField est unique autant que je sache. Vous pouvez généralement utiliser une classe de son propre délégué à pas de problème particulier. Pour UITextField vous devez créer un délégué (qui pourrait, bien sûr, appeler des méthodes sur l'objet UITextField pour qui c'est un délégué. Juste être prudent pour éviter de conserver des boucles, même si vous utilisez un ARC).
OriginalL'auteur Dan Rosenstark