Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI聚焦于导航视图内部绑定导致macOS崩溃(Xcode 12.4)_Swift_Xcode_Macos_Swiftui_Command - Fatal编程技术网

SwiftUI聚焦于导航视图内部绑定导致macOS崩溃(Xcode 12.4)

SwiftUI聚焦于导航视图内部绑定导致macOS崩溃(Xcode 12.4),swift,xcode,macos,swiftui,command,Swift,Xcode,Macos,Swiftui,Command,我发现,当macOS中的输入字段接收到焦点时,按照命令中规定的方式使用@FocusedBindings会导致一致的崩溃。只有当macOS应用程序包装在NavigationView组件中时,才会发生这种情况 一旦发出.focusedValue()的组件接收到聚焦,就会发生此崩溃: [常规]窗口已被标记为需要在窗口过程中进行另一次更新约束,但窗口过程中的更新约束已超过窗口中的视图 如果我使用HStack切换NavigationView,应用程序将按照SDK所描述的那样工作(每个TextEditor都

我发现,当macOS中的输入字段接收到焦点时,按照命令中规定的方式使用
@FocusedBinding
s会导致一致的崩溃。只有当macOS应用程序包装在
NavigationView
组件中时,才会发生这种情况

一旦发出
.focusedValue()
的组件接收到聚焦,就会发生此崩溃:

[常规]窗口已被标记为需要在窗口过程中进行另一次更新约束,但窗口过程中的更新约束已超过窗口中的视图

如果我使用HStack切换NavigationView,应用程序将按照SDK所描述的那样工作(每个TextEditor都会发出$post,可以通过命令拾取,只保持聚焦编辑器的值处于活动状态)

有人能提供一些关于如何解决这个问题的智慧吗?我在这里找到SwiftUI macOS的bug了吗

这是我的测试应用程序:

导入快捷界面
@主要
struct TestApp:SwiftUI.App{
var body:一些场景{
窗口组{
ContentView()
}.命令{
AppCommands()
}
}
}
//标记:命令
结构AppCommands:命令{
@CommandsBuilder变量体:一些命令{
命令菜单(“Post”){
CommitPostCommand()
}
}
}
struct commitpost命令:查看{
@FocusedBinding(\.post)变量post
var body:一些观点{
按钮(操作:self.committeeditortext){
文本(“保存帖子”)
}.keyboard快捷方式(KeyEquivalent.return,修饰符:EventModifiers.command)
}
func committeditor text(){
打印(“提交帖子\(帖子??“无”))
}
}
//标记:焦点值定义
结构FocusedPost:FocusedValueKey{
typealias值=绑定
}
扩展焦点值{
var post:FocusedPost.Value{
获取{self[FocusedPost.self]}
集合{self[FocusedPost.self]=newValue}
}
}
//标记:UI组件
结构ContentView:View{
@State var post:String=“Hello World”
var body:一些观点{
NavigationView{//将此切换为HStack可停止崩溃!
文本(“侧栏”)
VStack{
InnerView()
InnerView()
observer视图()
}
}
}
}
结构内部视图:视图{
@State var post:String=“”
var body:一些观点{
文本编辑器(文本:$post)
.focusedValue(\.post,$post)//注释掉它也可以停止崩溃
.padding()
}
}
结构观察者视图:视图{
@FocusedValue(\.post)var post
var body:一些观点{
文本(post?.wrappedValue??“NIL”)
}
}

当FocusedValue位于NavigationView堆栈内时,我会挂起,但没有有用的读数,但设置在其上方时则不会挂起。那没什么用。我永远也做不到:(