将单选组分配给单选按钮
Posted
技术标签:
【中文标题】将单选组分配给单选按钮【英文标题】:Assign Radio Group to Radio Buttons 【发布时间】:2020-04-16 05:44:28 【问题描述】:我有几个单选按钮
我需要为其分配一个单选组,以便一次只能选择一个单选按钮。没有单选组选项。我已经尝试过
为所有按钮分配一个动作出口 将所有按钮放在自定义视图中这些都不行。
【问题讨论】:
【参考方案1】:在过去,NSMatrix
是提供无线电组行为的类。如果您查找该课程的文档,您会发现以下注释:
不鼓励在 macOS 10.8 及更高版本中运行的应用程序中使用 NSMatrix。如果您需要在 macOS 10.8 及更高版本中运行的应用程序中创建单选按钮组,请创建 NSButton 实例,每个实例指定 NSRadioButton 的按钮类型,并为组中的每个按钮指定相同的操作和相同的超级视图。
所以有 三个 事情需要同时为真才能起作用:
您的按钮都必须共享同一个超级视图。 您的所有按钮都必须具有相同的操作。 您的按钮需要将其按钮类型设置为 NSRadioButton。我刚才试过了。我在情节提要的视图中创建了一个按钮,在属性检查器中将其按钮类型设置为“Radio”,并分配了一个动作。然后我多次复制该按钮,然后运行该应用程序。无线电行为自动工作。
如果它不适合你,我会先做我上面做的事情。只需创建一个单选按钮并使用操作进行设置。然后复制几次并测试。如果可行(它应该),那么要么看看你是否可以使用该技术来获得你想要的东西,或者看看你想要的东西和有效的东西之间有什么不同。
【讨论】:
你的方法奏效了。我不明白为什么苹果省略了这样一个关键要求。无线电组属性本来可以正常工作的。 很高兴它有效!如果你不喜欢他们的,写自己是一个非常容易的行为。涉及 NSMatrix 和 NSCell 的旧方法比它需要的要复杂得多。当前方法的缺点是使其工作的方式并不明显。 NSRadioButton 在 macOS 10.14 之后被弃用 @RickJansen:你让我有点困惑。单选按钮本身没有被弃用;只有NSButtonType
常量名称 NSRadioButton
被弃用,取而代之的是 Swift 风格的替换常量名称 NSButtonTypeRadio
。
如今,您只需将一个视图中的 NSButton (如 NSBox)连接到相同的操作,它们将被视为单选按钮。以上是关于将单选组分配给单选按钮的主要内容,如果未能解决你的问题,请参考以下文章