Mac 下的 toolBar 當(dāng)拖動的時候也會拖動窗口,這個時候如果我們放在 toolBar 上的 View 想拖動的時候就會產(chǎn)生沖突了呢簸,找了下沒找到只是禁止拖動 toolBar 的操作,找了個折中的辦法瘦赫,當(dāng)鼠標(biāo)移動到要拖動的 View 上的時候啸箫,禁止拖動窗口,鼠標(biāo)移開的時候在恢復(fù)忘苛。
```
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
? ? ? ? ? ? ? ? // 下面這個在這里沒什么用,但是你可以在用到的地方設(shè)置拖動 View 移動窗口召川。
? ? ? ? ? ? ? ? window.isMovableByWindowBackground = true
? ? ? ? ? ? ? ? self.hover = hover
? ? ? ? ? ? }
? ? }
```
更多內(nèi)容可以查看應(yīng)用?SwiftUI For Beginners,一個產(chǎn)品設(shè)計師從自學(xué)的 SwiftUI 開發(fā)的各個過程給你講解 SwiftUI 內(nèi)容汉形,Apple 應(yīng)用商店搜索 SwiftUI For Beginners 下載倍阐。
- 適合設(shè)計師人群,互聯(lián)網(wǎng)從業(yè)者或者想自己做個應(yīng)用的人群岔冀;
- 不適合技術(shù)人群,應(yīng)用完全是從一個 0 基礎(chǔ)的角度去講解各個階段需要的知識使套,對于技術(shù)人群過于簡單鞠柄;
- 內(nèi)容講解? 直接代碼效果預(yù)覽,學(xué)習(xí)過程更加直觀奉呛;
- iPhone期奔, iPad 和 Mac 全平臺支持,Apple Watch 和 TV 應(yīng)用即將上線呐萌。