2016-08-28 2 views
0

J'essaie d'afficher une info-bulle avec la fonction addToolTipRect mais je ne suis pas sûr de savoir comment transmettre le texte qui doit être affiché. Le code ne fonctionne pas, mais je pense que le code illustre ce que je veux faire:Comment utiliser userData dans addToolTipRect

var thedata : [String:AnyObject] = ["txt" : "Text to display"]; 
addToolTipRect(lsTooltipRects[0], owner: self, userData: &thedata) 

...

override func view(view: NSView, stringForToolTip tag: NSToolTipTag, point: NSPoint, userData data: UnsafeMutablePointer<Void>) -> String 
{ 
    let pUserData = UnsafeMutablePointer<[String:AnyObject]>(data).memory 
    return pUserData["txt"] // how do I get the text ??? 

    return "hello" // works fine 
} 

Je ne sais pas comment convertir la [chaîne: ANYOBJECT] Retour et-vient?

+0

'view.toolTip' https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/#//apple_ref/occ/instp/NSView/toolTip peut-être? Je ne l'ai jamais utilisé, mais ça sonne bien selon la documentation. Je pense que vous devrez définir cette valeur, sans utiliser la façon dont vous transmettez actuellement les données. – Kendel

+0

@Kendel: Merci, mais je pense que c'est autre chose. Je ne veux pas d'info-bulle pour la vue complète. Il devrait seulement être affiché pour une petite partie de celui qui fonctionne déjà bien. Le problème est l'affichage du bon texte. – ehmunnehm

Répondre

0

J'ai trouvé le problème. Le code fonctionne. Le problème était l'endroit où les données étaient définies. Parce que seul le pointeur est passé, la variable sera détruite au moment où vous l'utiliserez. Donc les données devraient être définies globalement.

Désolé pour le dérangement.