在SwiftUI中,可以使用.onHover修辞符来捕捉鼠标悬停事件。
例如,以下代码将创建一个圆形视图,当鼠标悬停在该视图上时,它将变为红色:
Circle()
.fill(Color.blue)
.frame(width: 100, height: 100)
.onHover { isHovered in
if isHovered {
self.circleColor = Color.red
} else {
self.circleColor = Color.blue
}
}
.foregroundColor(circleColor)
在此示例中,onHover修饰符获取一个布尔值isHovered,表示鼠标是否在视图上悬停。根据此值,我们可以相应地更新颜色。在这种情况下,我们将圆圈颜色设置为红色,当鼠标悬停在上面时,否则将颜色设置为蓝色。也要注意,我们在最后的foregroundColor修辞符中指定了颜色,这是由于颜色在onHover修辞符引发状态更改后需要重新绘制视图。