gpt4 book ai didi

cocoa - 持续更新 Mac 应用程序 UI?

转载 作者:行者123 更新时间:2023-12-03 17:36:08 26 4
gpt4 key购买 nike

我希望我的 Mac cocoa 应用程序能够持续更新 View ,即使它进入后台?诸如事件监视器或数字色彩计之类的东西。

我怎样才能实现这样的行为?

谢谢!

编辑:我从 NSGraphicContext 获取上下文,然后创建一个线程来在后台完成这项工作。

- (void)drawRect:(NSRect)dirtyRect
{
context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
[NSThread detachNewThreadSelector: @selector(ExecuteDrawingInBackGround:) toTarget: self withObject: nil];
}

最佳答案

您无法从后台线程使用 Mac UI API,因为它不是线程安全的。

连续重新绘制自身的程序通过让后台线程(如果有)通知主线程某些内容已更改并且需要重新绘制来实现此目的。最简单的方法是让后台线程发送 -performSelector:OnMainThreadWithObject:waitUntilDone:某个对象,通常是文档或 View Controller 。

或者,您也可以使用 NSTimer定期触发并完全避免后台线程。

关于cocoa - 持续更新 Mac 应用程序 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608720/

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