美文网首页
SwiftUI 在 Mac 下 toolBar 上的内容可以拖动

SwiftUI 在 Mac 下 toolBar 上的内容可以拖动

作者: SwiftUI初学者 | 来源:发表于2022-01-07 22:10 被阅读0次
    导航栏上设置可以拖动的元素

    Mac 下的 toolBar 当拖动的时候也会拖动窗口,这个时候如果我们放在 toolBar 上的 View 想拖动的时候就会产生冲突了,找了下没找到只是禁止拖动 toolBar 的操作,找了个折中的办法,当鼠标移动到要拖动的 View 上的时候,禁止拖动窗口,鼠标移开的时候在恢复。

    ```

    var body: some View {

            Image(tool.type.icon)

                .resizable()

                .aspectRatio(contentMode: .fit)

                .frame(width: 20, height: 20)

                .padding(.vertical, 4)

                .padding(.horizontal, 10)

                .background(Color("border").opacity(hover ? 0.4 : 0))

                .clipShape(RoundedRectangle(cornerRadius: 8, style: .continuous))

                .onDrag { () -> NSItemProvider in

                    let item = NSItemProvider(object: tool)

                    item.suggestedName = tool.type.icon

                    return item

                }

                .padding(.horizontal, 6)

                .onHover { hover in

                    let window = NSApplication.shared.windows.first!

                    window.isMovable = !hover

                    // 下面这个在这里没什么用,但是你可以在用到的地方设置拖动 View 移动窗口。

                    window.isMovableByWindowBackground = true

                    self.hover = hover

                }

        }

    ```

    更多内容可以查看应用 SwiftUI For Beginners,一个产品设计师从自学的 SwiftUI 开发的各个过程给你讲解 SwiftUI 内容,Apple 应用商店搜索 SwiftUI For Beginners 下载。

    - 适合设计师人群,互联网从业者或者想自己做个应用的人群;

    - 不适合技术人群,应用完全是从一个 0 基础的角度去讲解各个阶段需要的知识,对于技术人群过于简单;

    - 内容讲解➕ 直接代码效果预览,学习过程更加直观;

    - iPhone, iPad 和 Mac 全平台支持,Apple Watch 和 TV 应用即将上线。

    相关文章

      网友评论

          本文标题:SwiftUI 在 Mac 下 toolBar 上的内容可以拖动

          本文链接:https://www.haomeiwen.com/subject/gsescrtx.html