déplacement de deux ascenseurs simultanément

RocouRocou Membre
19:33 modifié dans API AppKit #1
Bonjour,
J'ai un problème d'ascenseurs: j'ai deux NSView dans deux fenêtres différentes. Quand les deux fenêtres sont ouvertes, une action sur l'ascenseur vertical de l'une entraà®ne la même réaction de l'ascenseur vertical de l'autre.  :o
Comment éviter cela?

NB: Une action sur ascenseur horizontal n'a pas cet effet.  B)

Réponses

  • dilarogadilaroga Membre
    19:33 modifié #2
    Etonnant... ce genre de comportement est décrit dans le guide des NSScrollview. Mais faut coder plusieurs lignes pour réaliser cette prouesse... Tu serais pas somnambule ?  :)

    Quand les deux fenêtres sont ouvertes, une action sur l'ascenseur vertical de l'une entraà®ne la même réaction de l'ascenseur vertical de l'autre.

    Et vice versa ??
  • ClicCoolClicCool Membre
    19:33 modifié #3
    T'aurais pas bindé tes scrollers sur le même objet ? ???
  • RocouRocou Membre
    19:33 modifié #4
    dans 1259064516:

    Etonnant... ce genre de comportement est décrit dans le guide des NSScrollview. Mais faut coder plusieurs lignes pour réaliser cette prouesse... Tu serais pas somnambule ?  :)

    :) Ce qui est sûr, c'est que j'en rêve la nuit...

    En lisant ton lien, je me suis rappelé que j'ai besoin de récupérer la position des ascenseurs de ma fenêtre principale et que j'ai mis ce code dans la méthode awakeFromNib de la vue associée à  cette fenêtre.
    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];<br />	[nc addObserver:self selector:@selector(recupDonneesScroll:) name:@&quot;NSViewBoundsDidChangeNotification&quot; object:monScroll];
    


    Visiblement le problème vient de là . En effet, je scrolle le contenu de ma vue avec la position récupérée des ascenseurs. Or je récupère la position des ascenseurs  de la vue "active" quelle qu'elle soit et non celle désignée par 'object:monScroll' :(


    dans 1259064516:

    Et vice versa ??


    Non, justement, c'est ce qui m'a mis sur la piste de la notification. Merci.

    Comment feriez-vous pour faire en sorte, par exemple, pour conserver un rectangle au centre d'une vue (au centre de la portion que l'on voit) que l'utilisateur peut scroller à  l'aide des ascenseurs?
  • dilarogadilaroga Membre
    19:33 modifié #5
    Or je récupère la position des ascenseurs  de la vue "active" quelle qu'elle soit et non celle désignée par 'object:monScroll'

    Une référence vers la vue qui a généré la notification est embarquée dans la notification (comme préciser dans la doc...).
    myView=[aNotification object]
    


    Comment feriez-vous pour faire en sorte, par exemple, pour conserver un rectangle au centre d'une vue (au centre de la portion que l'on voit) que l'utilisateur peut scroller à  l'aide des ascenseurs?

    Désolé je ne comprends pas bien... un rectangle fixe, qui resterait tout le temps au centre quelque soit la position des ascenceurs ( genre qui indiquerait une sélection) ?
  • RocouRocou Membre
    19:33 modifié #6
    dans 1259070716:

    Or je récupère la position des ascenseurs  de la vue "active" quelle qu'elle soit et non celle désignée par 'object:monScroll'

    Une référence vers la vue qui a généré la notification est embarquée dans la notification (comme préciser dans la doc...).
    myView=[aNotification object]
    



    Oui, j'avais vu mais je n'arrivais pas à  faire le lien avec ma vue. J'ai fait ceci, et cela semble bien fonctionner. Est-ce correct?
    -(void)recupDonneesScroll:(NSNotification *)aNotification<br />{<br />	<br />	NSView *myView=[[aNotification object] documentView];<br />	if (myView == self)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />....<br />}<br />
    


    En tout cas, un grand merci!
  • dilarogadilaroga Membre
    19:33 modifié #7
    Difficile à  dire avec si peu d'info mais si self correspond à  ta vue ton test devrait être bon.
  • ClicCoolClicCool Membre
    19:33 modifié #8
    dans 1259086350:

    Difficile à  dire avec si peu d'info mais si self correspond à  ta vue ton test devrait être bon.


    Oui mais en ce cas, ça me choque un peu qu'une vue assume des fonctions de controller.
    On est loin du MVC paradygme là   :-\\
  • dilarogadilaroga Membre
    19:33 modifié #9
    Oui mais en ce cas, ça me choque un peu qu'une vue assume des fonctions de controller.
    On est loin du MVC paradygme là 

    Tu as tout à  fait raison de le préciser... je me cantonnais à  essayer de faire avancer Rocou dans la résolution de son problème à  l'origine de ce post...
  • RocouRocou Membre
    19:33 modifié #10
    dans 1259086612:

    dans 1259086350:

    Difficile à  dire avec si peu d'info mais si self correspond à  ta vue ton test devrait être bon.


    Oui mais en ce cas, ça me choque un peu qu'une vue assume des fonctions de controller.
    On est loin du MVC paradygme là   :-\\

    Oui, mon code n'est pas vraiment dans les clous mais je reviens régulièrement dessus.
    Certaines parties fonctionnent sans que je comprenne pourquoi; je continue mon développement puis reviens sur le code mystérieux que j'avais laissé en plan. En général, j'ai suffisamment progressé pour enfin le comprendre.

    En tout cas, merci à  tous. Je suis très content, plusieurs entreprises m'ont demandé si mon logiciel était à  vendre!  :o
    La programmation est bancale mais je pense avoir bien saisi les besoins du métier que je cherche à  informatiser (la location de bennes à  déchet mais c'est un peu normal puisque que c'est mon métier  :) ).
Connectez-vous ou Inscrivez-vous pour répondre.