今天花了 2 个小时,看完了 Swift 的基本语法,然后准备写个 MacOS 的图片查看器做练习。
我的开发机版本 10.15.7 Catalina,只能用 1.0 的 SwiftUI 。
需求是我想在 Image 对象上监听滑轮滚动,然后对图片进行缩放处理,结果发现一堆手势都有回调函数,但是就是没有 wheelScroll 的回调函数。
最后,搜索了半天,StackOverflow 给出的写法是这样的
Image("1")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(alignment: .center)
.onAppear {
NSEvent.addLocalMonitorForEvents(matching: [.scrollWheel]) {
print("mouse: \($0.scrollingDeltaX) \($0.scrollingDeltaY)")
return $0
}
}
我想说,这一点都不 Swift,一点都不声明式。
所以,有更优的解法吗?
还是说 SwiftUI 现在写 MacOS 的 App 纯属就是个玩具?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.