我已经尝试了几次设置几个类似的按钮,所有按钮都连接到相同的 IBActions,但似乎仍然无法复制 RadioButton 行为。
目前,我有 5 个 Button,它们都是一个 NSView 的子级。
NSView
- ButtonOne - NSButton (Square Button)
- ButtonTwo - NSButton (Square Button)
- ButtonThree - NSButton (Square Button)
- ButtonFour - NSButton (Square Button)
- ButtonFive - NSButton (Square Button)
它们都连接到一个通用的 IBAction,其内容如下:
@IBAction func activityButtonPressed(sender: NSButton) {
println("\(sender.title) Pressed")
}
其工作原理是捕获实际的 mouseDown 事件并将其发送到 func (如预期的那样)。
如何让它们在单选按钮模式下工作?即,当单击各个按钮时,它们的 NSOnState 和 NSOffState 会切换吗?
当我尝试将按钮类型更改为单选按钮时,它会自动翻转回“切换”......
Cheers,
A
只需给 NSRadioButtons 相同的超级视图和操作即可。正如 Good Doug 在他的回答中指出的那样,
[...]如果您使用方形按钮样式,则不能使用单选按钮类型。您想在 Interface Builder 中使用 On Off 类型。
我真的不认为你想让你的操作方法设置组中所有按钮的状态......让 AppKit 为你做这件事。
From OS X 开发人员发行说明:Cocoa 应用程序框架(10.10 及更早版本) https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKitOlderNotes/
配置为单选按钮(将 -buttonType 设置为 NSRadioButton)的 NSButton 现在将在 10.8 及更高版本上链接的应用程序的单选按钮组中运行。要让按钮在单选组中工作,请对每个 NSButton 实例使用相同的 -action,并为每个按钮使用相同的超级视图。当满足这些条件时,选中一个按钮(通过将 -state 更改为 1),将取消选中所有其他按钮(通过将其 -state 设置为 0)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)