2009-01-21 7 views
1

Je n'arrive pas à créer une fonction de survol avec un NSTableView. L'idée est que (si la fonction est sélectionnée dans prefs) placer le pointeur de la souris au-dessus d'une ligne particulière dans un NSTabelView affichera une petite fenêtre contextuelle avec des informations supplémentaires concernant l'entrée dans cette ligne particulière. L'effet ne doit pas être immédiat (par exemple en surlignant un bouton lorsque vous le survolez), mais avec un délai de quelques secondes. Jusqu'à présent, j'ai implémenté cette fonctionnalité en utilisant la méthode déléguée tooltip, mais cela ne permet pas la personnalisation de la fenêtre et ne fonctionne pas bien (mise en page) si plus de 1-3 lignes d'informations doivent être affichées .Passage de la souris dans NSTableView

Dans le livre de Hillegass, il est suggéré d'utiliser les méthodes mouseEntered/mouseExited pour les survols, mais pour autant que je sache, cela fonctionne avec des zones prédéfinies d'une fenêtre et non des lignes dans une vue tabulaire.

Quelqu'un a-t-il des suggestions?

Gregor Tomasevic, Suède

Répondre

1

Vous êtes sur la bonne voie avec -mouseEntered: et -mouseExited :.

Regardez dans NSView -addTrackingRect: propriétaire: userData: supposeInside: et -removeTrackingRect: méthodes. Vous pouvez configurer votre tableView pour créer des trackingRects pour chaque ligne qui s'y trouve lorsque le contenu de la table change, ou bien configurer/mettre à jour une zone de suivi sur la tableViewView à chaque fois que -tile ou une autre méthode liée à la disposition est appelée.

Questions connexes