繁体   English   中英

SwiftUI macOS 在 TextField 处于活动状态时使用箭头键滚动列表

[英]SwiftUI macOS Scroll a List With Arrow Keys While a TextField is Active

我想使用 SwiftUI TextField和 SwiftUI List在项目列表上方呈现“搜索框”。 大致类似于 Safari 的“帮助”菜单项中的搜索框……它提供了一个搜索框,您可以在其中输入文本,同时使用向上和向下箭头键浏览结果列表。

Safari 帮助菜单项

我已经打了onMoveCommandfocusable ,和调整“父” NSWindow ,但还没有找到的清楚明白的方式TextField不断接受输入,同时仍然能够浏览下面的List使用向上和向下箭头键。 以下代码允许在TextField输入文本或导航列表条目,但不能同时...

struct ContentView: View {

  @State var text: String = ""
  @State var selection: Int? = 1

  var body: some View {
    VStack {
      TextField("Enter text", text: $text)
      List(selection: $selection) {
        ForEach((1...100), id: \.self) {
          Text("\($0)")
        }
      }
    }
  }
}

您可以将 NSTextField 包装在 NSViewRepresentable 中,并使用 NSTextFieldDelegate 拦截向上和向下移动键。 您可以查看我的建议演示。

带有建议的文本字段的来源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM