gpt4 book ai didi

SwiftUI 系统光标

转载 作者:行者123 更新时间:2023-12-03 09:29:52 30 4
gpt4 key购买 nike

我试图在 MacOS 上将光标更改为 SwiftUI 中的十字准线。

我已将以下代码放入 AppDelegate applicationDidFinishLaunching() 函数中:

NSCursor.crosshair.set()

当应用程序加载时,我看到光标变为十字线,然后直接交换回标准指针。

很高兴听到我在这里做错了什么。

谢谢大家。

最佳答案

这不是 NSCursor 的工作方式。有一堆光标,因此任何标准(或非标准)控件都可以将自己的光标类型推到顶部并使该光标成为当前光标。所以你只需放置第一个光标,然后一些具有自己默认光标的标准 View 替换它。

由于 SwiftUI 现在不允许本地管理游标,解决方案可能是

a) 在 SwiftUI View 上设置/插入所需的光标出现/消失,或

b) 使用标准 NSHostingController 方法将光标 rect 添加到 NSView.addCursorRect View 。

更新: 来自现有项目的一些快速演示(自定义按钮解决方案的一部分)

demo

struct DemoCustomCursor: View {
var body: some View {
Button(action: {}) {
Text("Cross Button")
.padding(20)
.background(Color.blue)
}.buttonStyle(PlainButtonStyle())
.onHover { inside in
if inside {
NSCursor.crosshair.push()
} else {
NSCursor.pop()
}
}
}
}

关于SwiftUI 系统光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61984959/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com