Accès à UITextField dans un UITableViewCell personnalisé
J'ai un UITableViewCell (avec des associés UITableViewCell sous-classe, .m & .h) créé à l'IB qui contient un objet UITextField. Cette UITextField est connecté à un IBOutlet dans le UITableViewCell sous-classe et dispose également d'une propriété. Dans ma table view controller, je suis en utilisant cette cellule personnalisé avec le code suivant:
//Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"textfieldTableCell"];
if (cell == nil) {
//Create a temporary UIViewController to instantiate the custom cell.
UIViewController *temporaryController = [[UIViewController alloc] initWithNibName:@"TextfieldTableCell" bundle:nil];
//Grab a pointer to the custom cell.
cell = (TextfieldTableCell *)temporaryController.view;
//Release the temporary UIViewController.
[temporaryController release];
}
return cell;
}
L'objet UITextField affiche fine et le clavier apparaît lorsque l'utilisateur clique dessus comme prévu, mais comment puis-je accéder à (obtenir .propriété de texte) l'objet UITextField que chaque ligne contient? et aussi comment gérer le 'textFieldShouldReturn' méthode de la UITextFields?
source d'informationauteur Darthtong
Vous devez vous connecter pour publier un commentaire.
Je pense que ce que l'OP est d'essayer de comprendre, c'est comment accéder à l'objet UITextField valeur une fois que l'utilisateur a entré des données dans chacun des champs. Ce ne seront pas disponibles au moment où les cellules sont créées comme suggéré par @willcodejavaforfood.
J'ai été à la mise en œuvre d'une forme et d'essayer de le rendre le plus convivial possible. C'est faisable mais il faut être conscient qu'il peut faire assez compliquée en fonction du nombre de UITableViewCells /UITextFields vous avez.
Tout d'abord à votre question re: l'accès aux valeurs de UITextField:
1) d'avoir une vue contrôleur un
<UITextFieldDelegate>
2) Appliquer la méthode suivante:
J'ai aussi utiliser une syntaxe similaire à assurez-vous que le courant de champ modifié est visible:
Et enfin, vous pouvez gérer
textViewShouldReturn:
d'une manière similaire:Dans cellForRowAtIndexPath: inclure ce code,
Ensuite accéder à la zone de texte à l'aide de
Il n'y a même plus moyen plus simple de résoudre les deux problèmes,
1.Créer un personnalisé uitableviewCell classe pour la cellule, (e.g.textfieldcell)
2.Maintenant, dans le textfieldcell.h appel du fichier textFieldDelegate
3.Dans le textfieldcell.m ecrire fichier textFieldDelegate méthodes
ie
5.(deuxième problème),
6.créer un délégué de la méthode dans le MaintableViewController
7.Dans MaintableViewController.m l'écriture des fichiers de la mise en œuvre de la méthode du délégué,
8.appeler le délégué de la méthode dans la classe de cellules , et de passer la variable dans le didendmethod
9.maintenant, affecter l'autonomie de la cellule.délégué lors de l'initialisation de la cellule dans uitableview
10.c'est ça que vous avez obtenu la variable passée de champ à partir de la vue principale, Maintenant faire ce que tu veux avec la variable
Si vous avez créé une classe pour la réalisation de votre cellule, je vous conseille de travailler contre elle.
Cette tutoriel a été utile pour moi. Vous pouvez faire référence à n'importe quel objet que vous avez besoin grâce à la balise.
Dans le Storyboard de la faire glisser sur une
UIImageView
ouUITextField
etc. et de définir la balise de 100 (ce que vous voulez) puis dans votre- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
l'utilisation de la balise de référence.Voici quelque chose que vous pourriez faire, n'oubliez pas de définir les mots-clés dans le storyboard:
C'est comment j'ai réussi à obtenir le texte à l'intérieur de la
UITextField
à l'intérieur de mon personnaliséeUITableViewCell
en Swift. J'ai consulté ce à l'intérieur de monUIButton
à l'intérieur d'une autre coutume,UITableViewCell
qui a un@IBAction
sur monUITableViewController
. Je n'ai qu'une section dans monUITableViewController
mais qui n'a pas d'importance de toute façon parce que vous pouvez facilement définir et attribuer vous-même.Chaque fois que j'ai puisé mon
UIButton
il me donne la valeur mise à jour du texte à l'intérieur de monUITextField
.