我試圖用Swift創建一個標籤,它將在每秒更新一次。我一直在嘗試幾個小時(我最近纔開始使用Swift),但我一直無法完成它。在Swift 3中顯示當前時間的更新標籤
我已閱讀了一些文檔並查看了其他人的答案。到目前爲止,我有這樣的:
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)
}
}
那麼這是什麼一樣的是,它更新時間標籤 - 但只有一次 - 這是視圖加載時。儘管我在viewDidLoad
函數中添加了Timer
,但間隔爲1秒,標籤保持靜態。
任何人都可以指出我在這裏做錯了嗎?
哇,好趕上!我不敢相信我花這麼多時間在這麼簡單的錯誤上。我贊成你,但它不會顯示,直到我有15聲望。 – zec