我写了一个用于快速打开Xcode项目的工具
我的第一次点击时,我的onTapGesture修改器不起作用。它第二次按预期工作,依此类推。可能是我的应用程序窗口未激活吗?
源代码: https://github.com/DKalachniuk/XcodeProjects 文件ProjectIcon.swift
struct ProjectIcon: View {
let project: Project
@EnvironmentObject var preferences: Preferences
var body: some View {
ZStack {
Rectangle()
.foregroundColor(Color.clear)
.background(Color(self.project.color.color))
.cornerRadius(8)
Text(String(self.project.name.first ?? "-").capitalized)
.font(.system(size: 14, weight: Font.Weight.semibold))
.padding(EdgeInsets(top: 0, leading: 4, bottom: 0, trailing: 4))
.foregroundColor(Color.white)
}
.frame(width: 24, height: 24)
.onTapGesture {
let newColor = CodableColorPicker.shared.pickRandomColor()
self.preferences.changeProjectsColor(self.project, newColor: newColor)
}
}
}
更新:关于此错误的有趣观察。如果我在窗口的某处单击,然后单击项目图标,那么它将立即生效
答案 0 :(得分:0)
添加以下内容(已通过Xcode 12 / macOS 10.15.5测试)
.frame(width: 24, height: 24)
.contentShape(RoundedRectangle(cornerRadius: 8)) // << here !!
.onTapGesture {
注意:顺便说一句,pickRandomColor()
的检查逻辑它没有考虑存储在首选项中的颜色,以防万一。