相关疑难解决方法(0)

打开 SwiftUi 菜单时的事件

有没有办法知道 SwiftUI 中的 Menu 控件何时即将打开或打开?我正在分享实现中的菜单代码。

struct ContentView: View {
    var body: some View {
        Menu("Options") {
            Button("Order Now", action: placeOrder)
            Button("Adjust Order", action: adjustOrder)
            Button("Cancel", action: cancelOrder)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui

6
推荐指数
1
解决办法
1311
查看次数

SwiftUI:.contextMenu 关闭时的通知(iOS)

我在视图上使用.contextMenuwith .onDrag,这似乎非常棘手:

通过设置为 true,背景颜色变为灰色dragging。这是由.onDrag打开上下文菜单时已经发生的情况触发的(有点早但还可以)。当我使用按钮关闭菜单时,我可以设置dragging为 false。当我使用拖动时,取消初始化dragging时状态会更改回 false 。ItemProvider到目前为止,一切都很好。

问题

当我点击上下文菜单外部将其关闭时,我似乎无法将dragging状态设置回 false。添加.onDisappearButton菜单中不起作用。

我在这里做错了什么?有什么方法可以在上下文菜单关闭时收到通知,或者在拖动实际开始时发生状态更改dragging(以便在打开上下文菜单时背景不会立即变为灰色)?

代码如下视频。

在此输入图像描述

struct ContentView: View {
    @State var dragging = false
    var body: some View {
        ZStack {
            Rectangle()
                .foregroundColor(.blue)
                .frame(width: 100, height: 100)
                .onDrag {
                    dragging = true
                    let provider =  ItemProvider(contentsOf: URL(string: "Test")!)!
                    provider.didEnd = {
                        DispatchQueue.main.async {
                            dragging = false
                        }
                    }
                    print("init ItemProvider")
                    return provider …
Run Code Online (Sandbox Code Playgroud)

ios swiftui

5
推荐指数
1
解决办法
1085
查看次数

标签 统计

swiftui ×2

ios ×1