c++ - 使用 Cocoa 和 C++ 时刷新屏幕上数据的正确方法是什么?

标签 c++ objective-c macos cocoa

我正在使用 Cocoa 作为图形界面为 OS X 制作一个应用程序。但我的主要算法是用C++编写的。该界面仅显示 NSTextFields 和 NSLevelIndicator 中算法的一些值。

屏幕需要实时刷新算法的数据。

我所做的是一个 NSThread,它从算法中读取数据并将其显示在屏幕上。但我认为这不是正确的方法。

您有什么建议?

最佳答案

通常,您应该只从主线程更新 GUI。您可以使用如下代码向主线程提交一些工作:

dispatch_async(dispatch_get_main_queue(), ^{
    [myTextField setStringValue:@"a new string"];
});

关于c++ - 使用 Cocoa 和 C++ 时刷新屏幕上数据的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10940446/

相关文章:

c++ - 创建一种接口(interface) C++

c++ - 如何确定要为体系结构启用或禁用的功能标志

objective-c - CGContextDrawImage 的优化替代品

macos - 修改电脑名称后无法登录Github for Mac客户端

macos - Mac OS X 各个版本的用户数量数据?

c++ - 在结构中的结构内部结构

c++ - 将参数传递给另一个函数

iphone - iPhone开发语言

ios - Collection View Controller 未添加为 subview

arrays - AppleScript 记录列表到 Swift 数组(或更好)