【发布时间】:2020-09-16 20:25:50
【问题描述】:
我正在尝试在 SwiftUI 应用中实现锁屏。
我需要跟踪每个事件以重新启动锁定计时器。
在 UIKit 应用程序中,我使用了这种方法 - 覆盖 UIApplication,它允许了解整个应用程序中的任何事件:
override func sendEvent(_ event: UIEvent) {
super.sendEvent(event)
switch event.type {
case .touches:
// Post Notification or Delegate here
default:
break
}
}
但在 SwiftUI 中不再支持它。 我尝试添加
.onTapGesture {}
到根 ContentView,但它没有按预期工作。
有什么办法可以避免添加
.onTapGesture {}
应用中的每一个视图?
【问题讨论】:
-
你可以看到这个答案:stackoverflow.com/a/60010955/8697793 - 你可以调用你的自定义函数而不是 endEditing。
-
是的,这是一个很好的答案,但是没有 Scenedelegate 和 Window 的 iOS 14 存在一些问题