SwiftUI 在 Mac 下 toolBar 上的內(nèi)容可以拖動(dòng)的設(shè)置

導(dǎo)航欄上設(shè)置可以拖動(dòng)的元素

Mac 下的 toolBar 當(dāng)拖動(dòng)的時(shí)候也會(huì)拖動(dòng)窗口,這個(gè)時(shí)候如果我們放在 toolBar 上的 View 想拖動(dòng)的時(shí)候就會(huì)產(chǎn)生沖突了,找了下沒找到只是禁止拖動(dòng) toolBar 的操作,找了個(gè)折中的辦法,當(dāng)鼠標(biāo)移動(dòng)到要拖動(dòng)的 View 上的時(shí)候,禁止拖動(dòng)窗口,鼠標(biāo)移開的時(shí)候在恢復(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

? ? ? ? ? ? ? ? // 下面這個(gè)在這里沒什么用,但是你可以在用到的地方設(shè)置拖動(dòng) View 移動(dòng)窗口。

? ? ? ? ? ? ? ? window.isMovableByWindowBackground = true

? ? ? ? ? ? ? ? self.hover = hover

? ? ? ? ? ? }

? ? }

```

更多內(nèi)容可以查看應(yīng)用?SwiftUI For Beginners,一個(gè)產(chǎn)品設(shè)計(jì)師從自學(xué)的 SwiftUI 開發(fā)的各個(gè)過(guò)程給你講解 SwiftUI 內(nèi)容,Apple 應(yīng)用商店搜索 SwiftUI For Beginners 下載。

- 適合設(shè)計(jì)師人群,互聯(lián)網(wǎng)從業(yè)者或者想自己做個(gè)應(yīng)用的人群;

- 不適合技術(shù)人群,應(yīng)用完全是從一個(gè) 0 基礎(chǔ)的角度去講解各個(gè)階段需要的知識(shí),對(duì)于技術(shù)人群過(guò)于簡(jiǎn)單;

- 內(nèi)容講解? 直接代碼效果預(yù)覽,學(xué)習(xí)過(guò)程更加直觀;

- iPhone, iPad 和 Mac 全平臺(tái)支持,Apple Watch 和 TV 應(yīng)用即將上線。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容