Jac*_*ter 5 mouse pointers cursor swift swiftui
我正在尝试在MacOS 上的SwiftUI 中将光标更改为十字准线。
我已将以下代码放入AppDelegate applicationDidFinishLaunching()函数中:
NSCursor.crosshair.set()
Run Code Online (Sandbox Code Playgroud)
当应用程序加载时,我看到光标变为十字线,然后直接交换回标准指针。
很高兴听到我在这里做错了什么。
谢谢大家。
Asp*_*eri 12
这不是工作的方式NSCursor。有一堆光标,因此任何标准(或非标准)控件都可以将自己的光标类型推到顶部并使该光标成为当前光标。所以你只需放置第一个光标,然后一些具有自己默认光标的标准视图替换它。
由于 SwiftUI 现在不允许本地管理游标,解决方案可能是
a) 在 SwiftUI 视图上设置/推动所需的光标出现/消失,或
b)NSHostingController使用标准NSView.addCursorRect方法添加光标 rect 以查看。
更新:现有项目的一些快速演示(自定义按钮解决方案的一部分)
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()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1667 次 |
| 最近记录: |