2010-07-29 3 views
1

J'ai une application avec une fenêtre principale et une fenêtre flottante avec une vue de table. Lorsque je modifie dans la fenêtre principale l'entrée de la fenêtre flottante (qui rend la fenêtre flottante inactive ou non), la vue de table n'affiche pas les nouvelles données malgré l'appel de reloadData: sur la tableview.Actualisation de NSTableView dans NSWindow inactif

J'ai également essayé d'actualiser la fenêtre flottante (car elle contient la tableview) avec ce qui suit (sans succès): [[window contentview] setNeedsDisplay: YES]; Donc, la question est de savoir comment rafraîchir une tableview dans une fenêtre qui n'est pas la fenêtre la plus en avant, inactive si vous voulez.

Merci!

Répondre

0

Sans code, nous ne pouvons que deviner ... Je suppose que les données que vous modifiez dans la fenêtre principale ne peuvent pas être les mêmes que la fenêtre flottante. (Il pourrait être une copie par exemple.) juste une supposition ...

+0

Le code est réparti sur une demi-douzaine de fichiers, mais permettez-moi d'élaborer sur le problème. La source de données de la tableview dans la fenêtre flottante est mise à jour, mais la fenêtre (et tableview) ne l'est pas. Donc, le problème réside dans l'actualisation de la fenêtre quand elle n'est pas active (ou pas dans la fenêtre clé) et le simple rechargement de la vue de table ne résout pas cela. –

0

Je réalise que c'est une vieille question, mais je voyais un comportement similaire et je n'ai pas trouvé de solution. Voici ce que j'ai résolu pour moi:

Assurez-vous que vous mettez à jour la tableview dans la fenêtre flottante sur le thread principal. Je mettais à jour NSOutlineView en réponse à une notification et je ne me rendais pas compte que la notification était en cours de publication sur un fil de discussion. La vue de plan n'a pas été mise à jour jusqu'à ce que j'ai activé sa fenêtre contenant. Une fois que j'ai déplacé ce code dans le thread principal, il a commencé à fonctionner correctement.