On May 15, 2010, at 11:50 AM, Shane wrote: > I have an application which swaps NSViews based on which segment of an > NSSegmentedControl the user clicks on. There's one specific NSView in > which I draw a graph using NSBezierPath's. This view is initialized > once my application is started and always exists, it's just not always > the currently selected view. > > My problem is that, when this one specific NSView is not selected and > the user runs a process, once the process completes the user selects > the view and no updates are drawn into it. But if the NSView is > currently selected, the view gets updates when data points are sent to > it. Selected or not, I always send data points to it to be drawn.
No you don't. You need them to be drawn when the view becomes visible. Drawing out-of-sight views is a waste of time and energy. When a view is added to a window and will be visible, it is marked as needing to be display, and is drawn. So if by "swapping views" you mean it is added as a subview of another view made visible, and removed when not, then you should already be covered. If by swapping you mean that you're simply switching selected tabs in a tab view and this graphing view is one of those tabs, then you're also taken care of. When a view's visible frame changes, it redraws. So the only way I can think of that this is happening, is that your data set isn't being set, and the view is still drawing the old content. That or something is calling setNeedsDisplay:NO. There's not really enough information here to go on. -- Seth Willits _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com