首页 > 解决方案 > 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")

    }
}

任何想法可能会发生什么?谢谢!

标签: swiftmacosswiftui

解决方案


推荐阅读