首页 > 解决方案 > 如何停止双击打开第二个窗口视图的 NavigationLink?

问题描述

编写一个 Macos 应用程序。下面的代码只是建立了一个简单的导航列表。单击“行”链接并显示“详细信息”行,一切都很好。如果您双击 NavigationLink,则会打开另一个窗口,其中只有 Text 视图。在我的测试过程中,有一个按钮可以关闭详细信息窗口上的视图,如果单击,原始窗口将关闭,而这个精简视图将保持打开状态。

我必须假设没有其他人看到这一点,因为我看不到其他人的任何东西。有谁知道什么会导致这种情况发生?

import SwiftUI

struct ContentView: View {

    var body: some View {
        HStack {
            NavigationView {
                List(0..<100) { row in
                    NavigationLink(destination: Text("Detail \(row)")) {
                        Text("Row \(row)")
                    }
                }
            }
        }
    }
}

标签: macosswiftui

解决方案


只需明确使用侧边栏列表样式

List(0..<100) { row in

   // ... content here

}
.listStyle(SidebarListStyle())     // << here !1

使用 Xcode 13.2 / macOS 12.1 测试


推荐阅读