swift - SwiftUI 工具栏项目在全屏时闪烁
问题描述
我正在开发一个涉及秒表的 MacOS SwiftUI 应用程序。当应用程序在全屏和秒表运行时,工具栏中的两个按钮每秒左右“闪烁”一次。按钮位于半透明侧边栏上方,并且“闪烁”但在很短的时间内变为纯白色。
这是它通常的样子:
但它偶尔会像这样闪烁:
这是我的秒表代码,它在运行时会导致闪烁:
class Stopwatch: ObservableObject {
var secondsElapsed = 0.0
@Published var secondsElapsedString = "0.00"
@Published var isRunning = false
var startTime: Date?
var timer = Timer()
func start() {
startTime = Date()
isRunning = true
timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { timer in
self.secondsElapsed = Date().timeIntervalSince(self.startTime!)
self.secondsElapsedString = String(format: "%.1f", self.secondsElapsed)
}
}
func stop() {
timer.invalidate()
isRunning = false
secondsElapsed = Date().timeIntervalSince(self.startTime!)
secondsElapsedString = String(format: "%.2f", self.secondsElapsed)
}
func reset() {
secondsElapsed = 0
secondsElapsedString = "0.0"
}
}
这是工具栏的代码:
.toolbar {
ToolbarItemGroup() {
Button(action: toggleSidebar, label: {
Image(systemName: "sidebar.left")
})
.help("Toggle the sidebar")
Button {
showingAddInstanceSheet = true
} label: {
Image(systemName: "plus")
}
.help("Create new instance")
}
}
任何想法可能会发生什么?谢谢!
解决方案
推荐阅读
- c++ - 为什么不能编译 std::views::take(std::uint64_t{})?
- snowflake-cloud-data-platform - 将“WHERE”谓词应用于 SNOWFLAKE 中的 GEOGRAPHY 数据类型列
- c# - Crystal Reports, Database Logon Failed in asp.net while using SQL library
- java - 我需要将控制台输出导出到 Java 中的 2 个不同文件。在第一个文件中,我能够获取数据,而第二个文件是空的
- azure - ImageResizer 是否可以在 Azure 上横向扩展应用服务计划?
- python - 检查文件中的点数并在之后的同一行中附加字符串
- javascript - 来自firestore的javascript中的图表
- javascript - 有没有办法将这样的东西组合成一个函数而不是定义这么多?
- facebook - 与其他 PC 相比,我的 PC 上的 m.facebook 看起来不同
- python - 使用 asyncio.gather 对 corountines 进行高级分组时出现异常