网站建设好后 如何验收,建设医院网站ppt模板下载,网页设计及网站建设的相关概念,价钱网站建设NSButton是macOS开发中常用的控件#xff0c;用于创建按钮。它有许多用法和需要注意的事项#xff0c;下面介绍其中的一些。
1. 创建按钮#xff1a;使用init(frame:)或init(title:action:)初始化按钮
let button NSButton(frame: NSRect(x: 0, y: 0, width: 100, height…NSButton是macOS开发中常用的控件用于创建按钮。它有许多用法和需要注意的事项下面介绍其中的一些。
1. 创建按钮使用init(frame:)或init(title:action:)初始化按钮
let button NSButton(frame: NSRect(x: 0, y: 0, width: 100, height: 40))
let button NSButton(title: Click me, target: self, action: #selector(buttonClicked(_:)))
2. 设置按钮类型使用setButtonType(_:)方法设置按钮类型例如圆形、方形等
button.setButtonType(.pushOnPushOff) // 圆形开关按钮
button.setButtonType(.momentaryChange) // 短暂变化按钮
3. 设置标题使用setTitle(_:), setAttributedTitle(_:)或setTitleWithMnemonic(_:)方法设置按钮标题
button.setTitle(OK)
let attributes: [NSAttributedString.Key: Any] [.foregroundColor: NSColor.red]
button.setAttributedTitle(NSAttributedString(string: Cancel, attributes: attributes))
4. 禁用按钮使用setEnabled(_:)方法禁用按钮禁用后按钮会显示为灰色
button.isEnabled false
5. 按钮动作使用setAction(_:)和setTarget(_:)方法来设置按钮点击后执行的方法和对象
button.target self
button.action #selector(buttonClicked(_:))objc func buttonClicked(_ sender: NSButton) {print(Button clicked!)
}
6. 设置图片使用setImage(_:)和setAlternateImage(_:)方法设置按钮的图像和替代图像
button.image NSImage(named: Icon)
button.alternateImage NSImage(named: Icon_selected)
7. 设置按钮状态使用setState(_:)方法设置按钮的状态可以是正常、选中或混合状态
button.state .on // 充当开关按钮使用设置按钮为选中状态
8. 设置键盘快捷键使用setKeyEquivalent(_:), setKeyEquivalentModifierMask(_:)和performKeyEquivalent(_:)方法来设置按钮的键盘快捷键
button.keyEquivalent \r // 回车键
button.keyEquivalentModifierMask [.command, .shift] // 快捷键修饰符同时按下 Command 和 Shift 键触发
NSButton的背景颜色和字体大小可以通过设置按钮的cell属性来实现。具体操作方法如下
9. 设置背景颜色
要设置NSButton的背景颜色需要创建一个NSButtonCell对象并设置其backgroundColor属性。然后将该NSButtonCell对象赋值给NSButton的cell属性即可。
let button NSButton(frame: NSRect(x: 0, y: 0, width: 100, height: 40))
let cell button.cell as! NSButtonCell
cell.backgroundColor .red
10. 设置字体大小
要设置NSButton的字体大小同样需要创建一个NSButtonCell对象并设置其font属性。然后将该NSButtonCell对象赋值给NSButton的cell属性即可。
let button NSButton(frame: NSRect(x: 0, y: 0, width: 100, height: 40))
let cell button.cell as! NSButtonCell
cell.font NSFont.systemFont(ofSize: 20)
11. 更改形状 1子类化NSButton并实现自定义形状。 创建一个自定义的NSButton子类并在其中覆盖draw(_ dirtyRect: NSRect)方法以绘制自定义形状。例如一个绘制红色圆形的自定义NSButton子类CircleButton
class CircleButton: NSButton {override func draw(_ dirtyRect: NSRect) {let path NSBezierPath(ovalIn: bounds)NSColor.red.setFill()path.fill()}
} (2) 使用Core Animation图层和自定义形状 使用Core Animation图层来创建自定义形状的按钮。可以使用CALayer的cornerRadius属性设置圆角或者使用mask属性指定一个alpha通道图像来裁剪按钮的形状。例如创建一个椭圆形的按钮
let button NSButton(frame: NSRect(x: 0, y: 0, width: 100, height: 50))
button.wantsLayer true
button.layer?.cornerRadius 25
button.layer?.backgroundColor NSColor.red.cgColor 在方法2中我们将NSButton的wantsLayer属性设置为true这将启用Core Animation图层。然后我们设置按钮图层的cornerRadius属性为25这将使按钮显示为椭圆形。最后我们设置按钮图层的backgroundColor属性为红色以使其显示为红色椭圆形。
12. 需要注意的事项
- 当使用setButtonType(.pushOnPushOff)设置按钮类型时需要使用setPeriodicDelay(_:interval:)方法设置按钮重复点击延迟和重复点击间隔 - 如果使用init(title:action:)方法初始化按钮并指定了动作方法则动作方法必须在目标对象中实现并且接受一个参数sender:NSButton - 在设置按钮快捷键时需要注意不要与其他快捷键冲突否则会导致快捷键无法正常使用