相关疑难解决方法(0)

如何在 macOS 上的 SwiftUI 中检测键盘事件?

如何在 macOS 上的 SwiftUI 视图中检测键盘事件?

我希望能够使用击键来控制特定屏幕上的项目,但不清楚如何检测键盘事件,这通常是通过覆盖keyDown(_ event: NSEvent)in来完成的NSView

keydown swiftui

19
推荐指数
3
解决办法
7134
查看次数

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

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

Safari 帮助菜单项

我已经对 "parent" 进行了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)")
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

macos swift swiftui swiftui-list

10
推荐指数
1
解决办法
564
查看次数

如何在 SwiftUI 中设置自定义环境键?

创建自定义环境键有效,但如果我希望在视图中设置该值,XCODE 不允许这样做。但是可以设置预定义的环境值。我究竟做错了什么?

struct ResetDefault: EnvironmentKey {
    static var defaultValue: Bool = false
}

extension EnvironmentValues {
    var resetDefault: Bool {
        get { self[ResetDefault.self] }
        set { self[ResetDefault.self] = newValue }
    }
}

struct ResetView: View {
    @Environment(\.resetDefault) var reset
    var body: some View {
        Text("Reset").onAppear() {
            reset = true.        // Cannot assign to property: 'reset' is a get-only property
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui

3
推荐指数
1
解决办法
2943
查看次数

标签 统计

swiftui ×3

keydown ×1

macos ×1

swift ×1

swiftui-list ×1