NSTableView sortir du mode édition automatiquement [résolu]

wiskywisky Membre
août 2005 modifié dans API AppKit #1
Salut à  tous je revient pour une petite question (quoi je pose trop de question?) ;)
Dans une colonne d'une de mes tableview, l'utilisateur peut modiffier le texte. Le problème est que quant-il valide il va sur l'élément suivant ou retourne en haut.

Je voudrai qu'il sorte du mode édition et qu'il sélectionne la ligne qui vient d'être modiffié.

Comment faire? y-a-t-il une methode dans le délégate qui permete de sortir du mode d'édition?

merci d'avance.

Réponses

  • Eddy58Eddy58 Membre
    17:28 modifié #2
    Je m'étais aussi intéressé comment il était possible de forcer la sortie du mode édition, j'ai essayé pas mal de trucs avec les delegates et notifications, mais sans succés. Si quelqu'un sait comment faire, je suis preneur aussi. :)
  • wiskywisky Membre
    17:28 modifié #3
    dans 1124492111:

    Je m'étais aussi intéressé comment il était possible de forcer la sortie du mode édition, j'ai essayé pas mal de trucs avec les delegates et notifications, mais sans succés. Si quelqu'un sait comment faire, je suis preneur aussi. :)

    ça m'arrange pas, c'est primordiale pour mon logiciel :-\\
  • ChachaChacha Membre
    17:28 modifié #4
    dans 1124484430:

    Dans une colonne d'une de mes tableview, l'utilisateur peut modiffier le texte. Le problème est que quant-il valide il va sur l'élément suivant ou retourne en haut.

    Je voudrai qu'il sorte du mode édition et qu'il sélectionne la ligne qui vient d'être modiffié.

    ça marche pas, ça ?

    <br />//dans la sous-classe de NSTableView;<br />//on n&#39;est pas obligé de sous-classer, mais dans ce cas, il faut<br />//&quot;registrer&quot; la notification, et remplacer self par [aNotification object], je pense<br />-(void) textDidEndEditing:(NSNotification *)aNotification<br />{<br />&nbsp; int selectedRow = [self selectedRow];<br />&nbsp; [super textDidEndEditing:aNotification];<br />&nbsp; [self selectRowIndexes:[NSIndexSet indexSetWithIndex:selectedRow] byExtendingSelection:NO];<br />}<br />
    
  • Eddy58Eddy58 Membre
    17:28 modifié #5
    Dans le meilleur des cas ce code sélectionnera la row éditée, mais ne fera pas sortir du mode édition, et c'est là  qu'est le problème en faites. >:)
  • ChachaChacha Membre
    17:28 modifié #6
    dans 1124534259:

    Dans le meilleur des cas ce code sélectionnera la row éditée, mais ne fera pas sortir du mode édition, et c'est là  qu'est le problème en faite.

    Ben si, moi c'est ce que je fais dans LaTeXiT... Quand on valide, pouf, on sort du mode édition et ça sélectionne la ligne en cours.
  • Eddy58Eddy58 Membre
    17:28 modifié #7
    J'ai du mal m'y prendre alors, j'avais fait un truc équivalent mais ça marchait pas. ???
  • wiskywisky Membre
    17:28 modifié #8
    mois ça marche pas. Mais je n'est pas sous classer:
    j'ai ce code :
    <br />-(void) textDidEndEditing:(NSNotification *)aNotification<br />{<br />	NSLog(@&quot;textDidEndEditing&quot;);<br />//récupère l&#39;object<br />	id object = [aNotification object];<br />//vérifie que c&#39;est la bonne table view<br />	if(object==sourceList){<br />		int selectedRow = [object selectedRow];<br />		[[object superclass] textDidEndEditing:aNotification];<br />		//[super textDidEndEditing:aNotification];<br />		[object selectRowIndexes:[NSIndexSet indexSetWithIndex:selectedRow] byExtendingSelection:NO];<br />	}<br />}<br />
    

    La notification n'est même pas appelé :-\\
  • ChachaChacha Membre
    août 2005 modifié #9
    dans 1124540508:

    La notification n'est même pas appelée

    Ben si elle est pas appelée, faut pas s'étonner que ça marche pas !
    As-tu "registré" ton objet pour recevoir cette notification ?
    <br />//à  placer dans le awakeFromNib<br />[[NSNotificationCenter defaultCenter]<br />  addObserver:self<br />  selector:@selector(textDidEndEditing:)<br />  name:NSTextDidEndEditingNotification<br />  object:sourceList//la notification ne sera déclenchée que si [aNotification object] est sourceList : ça t&#39;économise un test<br />]<br />
    


    ne pas oublier le removeObserver dans le dealloc.

    +
    Chacha
  • wiskywisky Membre
    17:28 modifié #10
    Merci chacha :kicking:

    j'ai fini par sous-classé à  cause d'un autre problème. ;)
    Maintenant je sais sous-classer  ;)
  • ChachaChacha Membre
    17:28 modifié #11
    dans 1124552013:

    Merci chacha
    Maintenant je sais sous-classer  ;)

    Oui, mais sinon, le coup du mode édition, ça marche ?
    En tous cas, bravo ! (c 'est toujours agréable de découvrir de nouvelles techniques).

    +
    Chacha
  • wiskywisky Membre
    août 2005 modifié #12
    dans 1124552982:

    dans 1124552013:

    Merci chacha
    Maintenant je sais sous-classer  ;)

    Oui, mais sinon, le coup du mode édition, ça marche ?
    En tous cas, bravo ! (c 'est toujours agréable de découvrir de nouvelles techniques).

    +
    Chacha


    ça marche et c'est génial. <3 <3 <3 <3 <br />J'ai un autre problème. Comment appelé une méthode de mon contrôleur principal?
    Le NSTableView qui à  comme customClass : "MySupperTableView" est connecter à  mon contrôleur par les outlets "delegate" et "datasource"
    Comment appeler une méthode de mon contôleur?  :)beta:
  • ChachaChacha Membre
    17:28 modifié #13
    dans 1124554305:

    Comment appelé une methode de mon contrôleur principal. celui qui à  le datasource et delegate de ma sous-classe? :)beta:

    C'est grammaticalement intéressant, mais je ne suis pas sûr d'avoir bien compris ;-)
    Quand tu veux appeler une méthode d'un objet, ben tu dois disposer d'un pointeur ou d'un accesseur vers cet objet... Si c'est ton delegate, tu y a accès par [self delegate]...
    Je ne comprends pas bien le sens de la question. (Et pis corrige c't orthographe, steuplaà®t, sinon j'appelle Bernard ) >:)
    +
    Chacha
  • wiskywisky Membre
    17:28 modifié #14
    dans 1124554795:

    dans 1124554305:

    Comment appelé une methode de mon contrôleur principal. celui qui à  le datasource et delegate de ma sous-classe? :)beta:

    C'est grammaticalement intéressant, mais je ne suis pas sûr d'avoir bien compris ;-)
    Quand tu veux appeler une méthode d'un objet, ben tu dois disposer d'un pointeur ou d'un accesseur vers cet objet... Si c'est ton delegate, tu y a accès par [self delegate]...
    Je ne comprends pas bien le sens de la question. (Et pis corrige c't orthographe, steuplaà®t, sinon j'appelle Bernard ) >:)
    +
    Chacha


    ça va mieux? c'est la conséquence de ton économiseur d'écran ;)

    Je teste [self delegate].
  • 17:28 modifié #15
    Comment appeler une méthode de mon contrôleur principal?
    Le NSTableView qui a comme customClass : "MySupperTableView" est connecté à  mon contrôleur par les outlets "delegate" et "datasource"


    ce sera encore mieux comme ça ;)
  • wiskywisky Membre
    17:28 modifié #16
    merci ;)

    je suis à  la masse.

    J'ai enfin réussi!  <3 <3 <3 <3 <3
Connectez-vous ou Inscrivez-vous pour répondre.