Cliquer sur un bouton sans donner mettre la fenêtre au premier plan.

juillet 2004 modifié dans API AppKit #1
Hello,

Est-ce que quelqu'un sait comment faire pour que lorsqu'on clique sur un bouton qui est dans une fenêtre, la fenêtre qui était active avant de cliquer sur le bouton le reste (un peu comme iTunes et les boutons pour changer de piste).

Merci

Réponses

  • molgowmolgow Membre
    22:21 modifié #2
    Il me semble que tu devrais pouvoir t'en sortir en définissant le niveau (level) de ta fenêtre (celle qui a un bouton) comme une fenêtre-palettte flottante.

    http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/Classes/NSWindow.html#BCIGAIJC
  • BruBru Membre
    22:21 modifié #3
    Non...

    Il faut jouer avec les méthodes -(BOOL)canBecomeKeyWindow et -(BOOL)canBecomeMainWindow de NSWindow.

    .
  • 22:21 modifié #4
    Sorry pour la réponse tardive, j'étais en vacances...

    Merci pour vos réponses, mais elles ne répondent en fait pas à  la question, qui était visiblement mal formulée...

    Le problème n'est pas de cliquer sur un bouton d'une fenêtre non active sans avoir à  activer la fenêtre (qui est la première partie du problème, mais qui est résolue), mais plutôt de faire en sorte que lorsqu'on clique sur le bouton (quand la fenêtre n'est pas active), la fenêtre ne devienne pas active.

  • mpergandmpergand Membre
    22:21 modifié #5
    Tu veux parler du click through ? selon la terminologie Apple, c'est normalement le cas des boutons des tools bars, mais je comprends pas bien la procédure  ??? c'est un attribut spécial du bouton ?
    Par contre j'ai trouvé ça: click-through-disabler
  • BruBru Membre
    22:21 modifié #6
    dans 1091885996:

    Sorry pour la réponse tardive, j'étais en vacances...

    Merci pour vos réponses, mais elles ne répondent en fait pas à  la question, qui était visiblement mal formulée...

    Le problème n'est pas de cliquer sur un bouton d'une fenêtre non active sans avoir à  activer la fenêtre (qui est la première partie du problème, mais qui est résolue), mais plutôt de faire en sorte que lorsqu'on clique sur le bouton (quand la fenêtre n'est pas active), la fenêtre ne devienne pas active.




    Ok. Le click-trough dont parle mpergand est la possibilté de ne pas "perdre" l'événement qui active une fenêtre.
    En fait, ce que tu veux, c'est comme cliquer sur le bouton rouge de fermeture de la fenêtre : ça n'active pas la fenêtre, mais le bouton réagit quand même...

    .
  • 22:21 modifié #7
    En fait, ce que tu veux, c'est comme cliquer sur le bouton rouge de fermeture de la fenêtre : ça n'active pas la fenêtre, mais le bouton réagit quand même...


    Tout à  fait, ou comme je l'avais mentionné dans le premier post les boutons de iTunes (en mode "réduit"), qui sont actif sans que la fenêtre iTunes devienne active.
  • BruBru Membre
    22:21 modifié #8
    Bon, je déterre ce sujet, mais je viens de faire une intéressante découverte...

    Dans IB j'ai créé un panel, et j'ai joué avec les propriétés pour voir à  quoi elles servaient...

    Si la propriété "Non activating Panel" est cochée et "Hide on deactivate" décochée, le fait de cliquer dans un bouton (par exemple) dans ce panel, alors que l'appli n'est pas au premier plan fait que l'action du bouton est exécutée, mais l'appli ne se met pas au premier plan, et donc ses fenêtres restent cachées.

    Voilà , c'est dit.

    .
Connectez-vous ou Inscrivez-vous pour répondre.