【发布时间】:2020-09-24 02:11:28
【问题描述】:
这就是我到目前为止所拥有的,一个显示小时和分钟的选择器,以及一个每天下午 2 点发出的通知,我正在尝试绑定它们,以便用户可以手动选择他们想要通知的时间出发,将时间转换为 24 小时格式并放入 ->
dateComponents.hour = 14
dateComponents.minute = 00
这是我只显示时间的选择器代码:
import UserNotifications
import SwiftUI
struct Calendar: View {
@State private var didTap:Bool = false
@State var alert = false
@State private var currentDate = Date()
@Environment(\.presentationMode) var presentationMode
@State private var isdateshowing = false
@State private var textfield = ""
var body: some View {
List {
Section {
TextField("Choose at when you would like to be reminded", text: $textfield, onEditingChanged: {
edit in
if edit {
self.isdateshowing = true
} else {
self.isdateshowing = false
}
})
if isdateshowing {
DatePicker(selection: .constant(Date()), displayedComponents: .hourAndMinute, label: { Text("Time") })
}
}
这是一个按钮,既可以请求发送每日通知的权限,也可以启用它,
Section {
Button(action: {
UNUserNotificationCenter.current()
.requestAuthorization(options: [.alert, .sound, .badge]) { (status, _) in
if status{
let content = UNMutableNotificationContent()
content.title = "It Is Time!"
content.body = "LETS DO THIS!"
content.sound = UNNotificationSound.default
var dateComponents = DateComponents()
dateComponents.hour = 14
dateComponents.minute = 00
// let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
let request = UNNotificationRequest(identifier: "noti", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
return
}
self.alert.toggle()
}
}) {
Text("Press to Enable Daily Notifications")
}.alert(isPresented: $alert) {
return Alert(title: Text("Please Enable Notification Access from Settings Pannel !!"))
}
}
}
}
}
struct Calendar_Previews: PreviewProvider {
static var previews: some View {
Calendar()
}
}
【问题讨论】:
标签: ios datepicker notifications swiftui timepicker