将单选组分配给单选按钮

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)连接到相同的操作,它们将被视为单选按钮。

以上是关于将单选组分配给单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

将单选按钮关联到各个组

如何将单选按钮创建为按钮?

将单选按钮选项卡动态链接到内容 div

将单选按钮添加到现有组 - MFC

将单选按钮数据发送到下一个活动

将单选按钮与相应的标签对齐