gpt4 book ai didi

cocoa - 将固件下载到设备时更新进度指示器

转载 作者:行者123 更新时间:2023-12-03 17:31:09 25 4
gpt4 key购买 nike

我正在开发一个 cocoa 应用程序,它将固件下载到设备。使用 NSProgressIndicator 显示下载进度。我在 while 循环中的 DeviceRequestTO 方法之后调用 NSProgressIndicator 的 -incrementBy: 方法。但只有在将整个固件写入设备后,进度指示器才会更新。它本身就显示 100% 完成。所以我添加了 NSView 类的 -displayIfNeeded 方法。现在它显示进度顺利,但在固件下载完成后也会发生这种情况。如何同时实现进度指示和写入操作?

代码如下:

while(1)
{
int result = (*dev)->DeviceRequestTO(dev, &request);
printf("\nBlocks Written Successfully: %d",DfuBlockCnt);
[refToSelf performSelectorOnMainThread:@selector(notifyContent)
withObject:nil
waitUntilDone:NO];
}

//In main thread
- (void)notifyContent{
[dnldIndicator incrementBy:1];
[self displayIfNeeded];
}

最佳答案

您需要调用的方法是setNeedsDisplay:,而不是displayIfNeeded。后者的意思是“如果有人向您发送了 setNeedsDisplay:YES,则发送给您自己 display”。如果您不执行最后一部分,则 View 不知道它应该显示,并且 displayIfNeeded 将不执行任何操作。

一旦添加了 setNeedsDisplay: 消息,您就可以删除 displayIfNeeded 消息,因为框架将该消息发送到窗口(因此, ,以使其所有观点)无论如何定期。

关于cocoa - 将固件下载到设备时更新进度指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/423792/

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