Fenêtre genre "callout"
AP
Membre
Bonjour,
Je cherche à créer une fenêtre genre celle en noir:
Est-ce que cela existe tout fait ou sinon comment, faut-il faire?
Merci d'avance pour votre aide
Je cherche à créer une fenêtre genre celle en noir:
Est-ce que cela existe tout fait ou sinon comment, faut-il faire?
Merci d'avance pour votre aide
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si ça existe c'est pas dans les API. Il y a peut être des frameworks.
J'en ai eu besoin d'une, je l'ai écrite en partant d'une NSWindow transparente (opaque=NO) et une sous-classe de NSView pour dessiner le bord avec la petite flèche. Cette view est enregistrée dans la NSWindow comme son "content". Après la view de contenu a proprement parlé peut être définie dans IB avec par exemple des contrôles de BWToolkit. Elle deviendra le "content" de la vue qui dessine les bords.
Manu
Merci, c'est exactement ce que je cherchais et j'ai découvert par la même occasion un petit site sympa que je ne connaissais pas.
En fait je veux qu'elle puisse être affichée sur n'importe quelle fenêtre
- qu'elle ne récupère pas le focus
- qu'elle récupères les événements souris
Toute idée est la bienvenue
Comme tu le verras dans les divers tutos sur le net, sous-classer le dessin de NSWindow est une gageure, si bien qu'il est souvent préférable d'utiliser une fenêtre "transparente" et d'ajouter des vues personnalisées à l'intérieur.
Utiliser une fenêtre pose toutefois deux problèmes:
- Positionner correctement la fenêtre perso par rapport au contrôle ciblé. Ce n'est pas évident parce qu'il faut faire des conversions de coordonnées, et ne pas placer la fenêtre perso hors de l'écran.
- On peut déplacer la fenêtre du dessous, et il faut que la fenêtre perso suive.
C'est pour cela qu'utiliser une NSView perso est plus simple.
Quelques petites questions additionnelles: j'utilise MAAttachedWindows cité ci-dessus. Apparemment elle est toujours utilisée en subwindow. Que faudrait-il changer pour que l'on puisse l'utiliser en fenêtre autonome?
Merci
Les fenêtres sont en haut de la hiérarchie d'affichage (même la barre des menus est une fenêtre). On ne peut pas mettre une fenêtre à l'intérieur d'une autre. On peut seulement déplacer une fenêtre par rapport à une autre ou mettre une vue à l'intérieur d'une fenêtre ou d'une autre vue.
Dommage.