You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NSProgressIndicator UI不更新:手动设置doubleValue后进度条仍显示最小值

问题描述

我尝试手动更新NSProgressIndicator的doubleValue属性,但填充式进度条的UI始终停留在最小值。日志显示数值已更新,请问我哪里操作有误?相关代码如下:

//Add progress-bar
var hudSlider = NSProgressIndicator(frame: NSRect(x: view.frame.midX, y: view.frame.midY, width: 100, height: 40))
hudSlider.minValue = 0.0
hudSlider.maxValue = 100.0
hudSlider.doubleValue = 50.0
view.addSubview(hudSlider, positioned: .above, relativeTo: nil)

进度条UI截图:
UI of NSProgressIndicator

解决方案

问题出在NSProgressIndicator的默认样式是不确定模式(转圈加载样式),这种模式下设置doubleValue不会显示填充进度。你需要添加两行关键设置:

//Add progress-bar
var hudSlider = NSProgressIndicator(frame: NSRect(x: view.frame.midX, y: view.frame.midY, width: 100, height: 40))
hudSlider.minValue = 0.0
hudSlider.maxValue = 100.0
hudSlider.doubleValue = 50.0
// 新增的核心配置
hudSlider.isIndeterminate = false // 关闭不确定模式,启用数值驱动的进度显示
hudSlider.style = .bar // 指定为条形填充样式
view.addSubview(hudSlider, positioned: .above, relativeTo: nil)
  • isIndeterminate = false:让进度条切换到确定模式,此时doubleValue的变化才会同步到UI;
  • style = .bar:明确使用水平条形的填充样式,确保进度以填充方式直观展示。

内容的提问来源于stack exchange,提问作者Avi Rok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:22:13