gpt4 book ai didi

cocoa - 如何确保 NSWindow 在代码块末尾重新绘制

转载 作者:行者123 更新时间:2023-12-03 16:30:43 24 4
gpt4 key购买 nike

我正在更新关键部分内的窗口。因为在该窗口内绘制的数据被其他人(在另一个关键部分内)访问,所以我想确保在退出关键部分时绘制的窗口已更新。

在 Windows 中,我可以使用 InvalidateRect 后跟 UpdateWindow 来确保强制绘制并执行消息,而不是简单地将其插入队列,标记为稍后执行。

在OSX中达到同样效果的相应方法是什么?

从文档来看,似乎是这样的:

[myWindow display] 其中 myWindow 的类型为 NSWindow 应该可以解决问题,但它不会立即绘制它。

有什么建议吗?

最佳答案

您可以通过在窗口中包含的 View 上调用 [self setNeedsDisplay] 来强制执行此操作,然后在短时间内运行一个小型运行循环,以允许绘制消息传播到显示逻辑。

    [viewToRefresh setNeedsDisplay];
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];

这可能有用。这是一个相当奇怪的场景! YMMV。

关于cocoa - 如何确保 NSWindow 在代码块末尾重新绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37747918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com