swift - 如何在swiftUI中每天查看日期

标签 swift swiftui

我是 swiftUI 的新手。现在,我正在制作一个可以记下您的任务进度的应用程序。在应用程序中,我需要用用户每天的目标(我猜是凌晨 12 点)重新填写列表,我在哪里以及如何快速检查时间?我知道我们可以在 Storyboard 中使用 app delegate,但是对于 SwiftUI,在应用 CoreData Manager 之后,app delegate 已经消失,我们有 app.swift,我现在应该在哪里检查?谢谢!

最佳答案

根据 Leo Dabus 关于监视 NSCalendarDayChanged 通知的建议,这里有一些代码展示了如何在 SwiftUI 中完成此操作。

import SwiftUI

struct ContentView: View {

    @ObservedObject var viewModel = ContentViewModel()

    var body: some View {
        VStack {
            Text(viewModel.displayDate)
            // List of goals
        }
    }
}

class ContentViewModel: ObservableObject {

    @Published var currentDate: Date = Date()

    var displayDate: String {
        Self.simpleDateFormatter.string(from: currentDate)
    }

    private static let simpleDateFormatter: DateFormatter = {
        let formatter = DateFormatter()
        formatter.dateFormat = "MMMM d"
        return formatter
    }()

    init() {
        NotificationCenter.default.addObserver(self, selector: #selector(dayDidChange), name: .NSCalendarDayChanged, object: nil)
    }

    @objc
    func dayDidChange() {
        currentDate = Date()
    }
}

关于swift - 如何在swiftUI中每天查看日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67350510/

相关文章:

ios - SwiftUI 的 minimumFontScale 等价物是多少?

ios - swift 用户界面 : Input Field Keyboard animation causing other views in tab view to animate

swift - 覆盖作为 Obj-C 框架类一部分的 swift 函数

ios - 关于状态更改问题的 SwiftUI 刷新列表

SwiftUI optional 环境对象

ios - 在UITextView下打开UIDatePicker

ios - 向VStack添加左边框

swift - 为什么我的存档 Swift 应用程序看起来路径错误?

ios - 在生产中完全禁用来自 XCGLogger 的日志

ios - 我可以在 Realm.IO 中使用 child 的主键作为 parent 的主键吗?