在 macOS 10.12 之前,以下代码在后台线程上运行良好:
[nsView lockFocusFocus];
... draw something ...
[[NSGraphicsContext currentContext] flushGraphics];
[nsView unlockFocus];
然而,在 10.13 中,flushGraphics 不再立即更新视图的内容。
我知道现在不鼓励从后台线程进行绘图,但这并不意味着它不再可能。事实上,...中的所有内容...绘制一些东西...仍然进入视图的后备存储。一旦 drawRect: 下一次在主 UI 线程上被调用,视图就会刷新,所有内容都正确到位。
如何让这立即发生?有没有办法让视图的更改立即可见?