Swiftui 为什么在AppDelegate中更新@State不起作用?

Swiftui 为什么在AppDelegate中更新@State不起作用?,swiftui,Swiftui,我试图打印isFocused值,它总是true,即使在isFocused=false语句之后。@State是否仅在SwiftUI视图中工作?文档: ///实例化持久状态的链接视图属性 ///类型为“value”的值,允许视图读取和更新其 ///价值观。 @可用(iOS 13.0、OSX 10.15、tvOS 13.0、watchOS 6.0、*) @冻结@PropertyRapper公共结构状态:DynamicProperty{ 所以,State是用于SwiftUIView,但是AppDele

我试图打印
isFocused
值,它总是
true
,即使在
isFocused=false
语句之后。
@State
是否仅在
SwiftUI
视图中工作?

文档:

///实例化持久状态的链接视图属性
///类型为“value”的值,允许视图读取和更新其
///价值观。
@可用(iOS 13.0、OSX 10.15、tvOS 13.0、watchOS 6.0、*)
@冻结@PropertyRapper公共结构状态:DynamicProperty{

所以,
State
是用于SwiftUI
View
,但是
AppDelegate
是一个非
View

我明白了!那么使用Combine是另一种解决方案。~这也是无法分配
false
值的原因吗?~经过测试,是的,这就是原因。
import Cocoa
import SwiftUI

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    @State var isFocused: Bool = true
    
    var window: NSWindow!

    // Some window setup code here

    func applicationDidBecomeActive(_ notification: Notification) {
        isFocused = true
    }
    
    func applicationDidResignActive(_ notification: Notification) {
        isFocused = false
    }
}
/// A linked View property that instantiates a persistent state
/// value of type `Value`, allowing the view to read and update its
/// value.
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
@frozen @propertyWrapper public struct State<Value> : DynamicProperty {