SwiftUI macOS Прокрутка списка клавишами со стрелками, когда TextField активен - PullRequest
2 голосов
/ 16 января 2020

Я хотел бы использовать SwiftUI TextField и SwiftUI List, чтобы отобразить «окно поиска» над списком элементов. Что-то похожее на окно поиска, доступное в пункте меню справки Safari ... которое предоставляет окно поиска, в которое вы всегда можете ввести текст, одновременно просматривая список результатов с помощью клавиш со стрелками вверх и вниз.

safari help menu item

Я играл с onMoveCommand, focusable и поправками к «родителю» 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)")
        }
      }
    }
  }
}
...