请使用swift语言 帮我写三个单选按钮 并且当鼠标经过按钮的时候 单选框会改变颜色以及点击按钮的时候颜色会是红色
时间: 2024-04-10 22:34:46 浏览: 125
点击按钮切换颜色
当然可以!以下是使用 Swift 语言创建三个单选按钮,并为其添加鼠标悬停和点击时的颜色变化效果:
```swift
import Cocoa
class ViewController: NSViewController {
var radioButton1: NSButton!
var radioButton2: NSButton!
var radioButton3: NSButton!
override func viewDidLoad() {
super.viewDidLoad()
// 创建第一个单选按钮
radioButton1 = NSButton(frame: NSRect(x: 50, y: 100, width: 100, height: 30))
radioButton1.title = "Option 1"
radioButton1.setButtonType(.radio)
radioButton1.action = #selector(radioButtonClicked)
radioButton1.target = self
view.addSubview(radioButton1)
// 创建第二个单选按钮
radioButton2 = NSButton(frame: NSRect(x: 50, y: 60, width: 100, height: 30))
radioButton2.title = "Option 2"
radioButton2.setButtonType(.radio)
radioButton2.action = #selector(radioButtonClicked)
radioButton2.target = self
view.addSubview(radioButton2)
// 创建第三个单选按钮
radioButton3 = NSButton(frame: NSRect(x: 50, y: 20, width: 100, height: 30))
radioButton3.title = "Option 3"
radioButton3.setButtonType(.radio)
radioButton3.action = #selector(radioButtonClicked)
radioButton3.target = self
view.addSubview(radioButton3)
}
@objc func radioButtonClicked(sender: NSButton) {
// 设置点击时的红色背景颜色
sender.layer?.backgroundColor = NSColor.red.cgColor
}
override func mouseEntered(with event: NSEvent) {
// 设置鼠标悬停时的颜色
if let button = event.trackingArea?.owner as? NSButton {
button.layer?.backgroundColor = NSColor.blue.cgColor
}
}
override func mouseExited(with event: NSEvent) {
// 恢复正常背景颜色
if let button = event.trackingArea?.owner as? NSButton {
button.layer?.backgroundColor = nil
}
}
}
```
这段代码创建了一个 macOS 应用程序的视图控制器,并在其视图中添加了三个单选按钮。当鼠标经过按钮时,按钮的背景颜色会变为蓝色,当点击按钮时,背景颜色会变为红色。请将这段代码添加到你的项目中,并在需要的地方调用该视图控制器。记得要在 Main.storyboard 中将视图控制器连接到你的窗口!
阅读全文