gpt4 book ai didi

swift - 更新标签,它在 Swift 3 中每秒显示当前时间

转载 作者:行者123 更新时间:2023-11-28 10:52:29 24 4
gpt4 key购买 nike

我正在尝试使用 Swift 创建一个每秒更新一次的标签。我已经尝试了几个小时(我最近才开始使用 Swift),但一直无法完成。

我已经阅读了一些文档并查看了其他人的答案。到目前为止,我有这个:

import Cocoa

class ViewController: NSViewController {

@IBOutlet weak var timeLabel: NSTextField!

var timer = Timer()

let date = Date()
let calendar = Calendar.current
let dateFormatter = DateFormatter()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
dateFormatter.dateStyle = .none
dateFormatter.timeStyle = .medium
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTimeLabel), userInfo: nil, repeats: true);
}

override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}

func updateTimeLabel() {
timeLabel.stringValue = dateFormatter.string(from: date)
}

}

所以它的作用是更新时间标签——但只更新一次——那是 View 加载的时间。虽然我在viewDidLoad函数中添加了一个Timer,间隔1秒,但标签保持静态。

谁能指出我这里做错了什么?

最佳答案

date 是您代码中的常量。 它永远不会改变。

您应该重新初始化更新发生的日期。

func updateTimeLabel() {
timeLabel.stringValue = dateFormatter.string(from: Date())
}

关于swift - 更新标签,它在 Swift 3 中每秒显示当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45484036/

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