8
votes

Autoriser un utilisateur à éditer le texte dans une cellule UitaireView

Je crée un menu "Pages favorites" dans mon application TableView, où les utilisateurs peuvent enregistrer leurs pages Web préférées, puis la naviguer plus facilement via le menu.

Pour faciliter le souvenir duquel le lien est lequel, je souhaite permettre à l'utilisateur de cliquer sur un bouton "Modifier", sélectionnez la cellule qui souhaite modifier le nom de, puis tapez le nouveau nom et avoir La cellule renomme elle-même à ce que l'utilisateur a saisi. J'utilise actuellement l'application Paramètres intégrée pour enregistrer les données de liaison.

Je n'ai pas besoin de connaître tous les aspects de ce que je viens de demander. Je veux juste savoir s'il est possible que l'utilisateur modifie le texte de la cellule d'une vision de la TableView, et quelles méthodes je voudrais utiliser pour le faire.

J'ai vu d'autres questions couvrant un motif similaire, mais de manière générale d'une base plus programmatique.


2 commentaires

Dupliqué possible de EdifitableView d'entretien avec un champ de texte sur chaque cellule


@JIM Merci mais ce poste fait référence à être le champ de texte intégré étant toujours ouvert.


3 Réponses :


7
votes

L'utilisateur ne peut pas modifier directement le texte de la cellule d'une vue de table. (Techniquement, ce serait la cellule.textLabel.text). Toutefois, s'ils entrent dans un mode "Edit", vous pouvez facilement afficher un champ uitéxt dans la cellule (ou dans une vue modale) prépopulée avec la valeur actuelle, laissez-les éditer, sauvegarder puis mettre à jour la cellule.textLabel. Valeur de texte vous-même.


0 commentaires

-1
votes

Donc, je pense que le meilleur moyen est d'utiliser TabelView Cell Edityle. Vous pouvez utiliser TableView délégué Set Cell EdiDstyle. Vous pouvez faire quelque chose que vous voulez lorsque l'utilisateur éditez la cellule. Définir le style de cellule dans: xxx pré>

faire des choses lorsque l'utilisateur cliquez sur le bouton Modifier dans: P>

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath


2 commentaires

Ce n'est pas le même genre de "modifier" - ce type d'édition fait référence à la déplacement de la cellule ou à la supprimer.


-1 pour ce que @rayfleck a dit. Supprimer cette réponse pourrait être la bonne réponse, ou vous pourriez répondre aux commentaires.



6
votes

Votre UitailView est créé ici, généralement xxx

(un des délégués pour le utableview ).

Donc, si vous sous-classe UitailViewCell et exposez un texte Propriété, vous pouvez faire ce que vous voulez, y compris la maintien d'un uitextfield instance dans la cellule. Assurez-vous d'utiliser les trucs dequeue comme vous le feriez normalement.

Ensuite, lorsque l'utilisateur touche le uitabilviewcell Vous pouvez donner le uitextfield la mise au point: < / p> xxx

si vous faites le utableviewcell Sous-classe A uitextfieldelegate et faites le délégué pour le champ de texte, vous pouvez facilement gérer Ces méthodes ennuyeusement de mémoire difficiles: xxx


0 commentaires