如何在可可应用程序中(从情节提要中)对单选按钮进行分组?

Avi*_*Net 3 macos cocoa objective-c radio-button

我正在尝试在可可应用中将2个单选按钮分组。

但是与iOS不同,在iOS中您可以使用Control-Drag来连接按钮(如图所示)在此处输入图片说明

在可可应用中,我没有找到任何优雅的方法...

在我做丑事之前有什么建议吗?

Ron*_*ter 7

NSMatrix曾经是解决方案,但现在不建议这样做:

注意:不建议在OS X v10.8及更高版本中运行的应用程序使用NSMatrix。如果您需要在OS X v10.8和更高版本中运行的应用程序中创建单选按钮组,请创建NSButton实例,每个实例指定NSRadioButton的按钮类型,并为该组中的每个按钮指定相同的操作和相同的超级视图。

如果所有按钮都调用相同的操作方法 并且 在相同的超级视图中则可可会自动选择单击的按钮并取消选择上一个按钮,并且-无需执行任何代码。


Avi*_*Net 1

所以这是我不太优雅的解决方案 -

  1. 在类中定义按钮数组:

NSArray* _radioButtonsArray;

  1. 在viewDIdLoad中初始化它:

    _radioButtonsArray = [[NSArray alloc] initWithObjects:_radioButton1,_radioButton2,_radioButton3, nil];
    
    Run Code Online (Sandbox Code Playgroud)
  2. 定义一个radioButtonIsPressed方法并将其作为一个操作连接到所有单选按钮:

    -(IBAction)radioButtonIsPressed:(id)sender{ for (NSButton* btn in _radioButtonsArray){ if (btn != sender) [btn setState:0]; } }