以编程方式创建Cocoa单选按钮

时间:2009-09-21 21:19:36

标签: objective-c cocoa radio-button

我需要以编程方式创建一个Cocoa单选按钮,任何人都可以解释如何完成此操作或发布一个显示如何做得好的好链接。

3 个答案:

答案 0 :(得分:9)

以下是以编程方式创建单选按钮的示例代码:

//create the radio button prototype
NSButtonCell *proto = [[NSButtonCell alloc] init];
[proto setTitle:@"Options"];
[proto setButtonType: NSRadioButton];

//define the matrix size where you'll put the radio buttons
NSRect matrixRect = NSMakeRect(20.0,20.0,125.0,125.0);

//define the matrix specifying that it will contain radio buttons of
//prototype "proto" defined above, and that it will have 3 radio buttons 
//arranged on 1 column
NSMatrix *matrix = [[NSMatrix alloc] initWithRect: matrixRect
                                     mode: NSRadioModeMatrix
                                     prototype: (NSCell *)proto
                                     numberOfRows:3 numberOfColumns:1];

//this assumes that you connected the window object to an outlet
[[windowOutlet contentView] addSubview: matrix];

//set the radio buttons' titles by getting references to the matrix's cells
NSArray *cells = [matrix cells];
[[cells objectAtIndex:0] setTitle:@"Option 1"];
[[cells objectAtIndex:1] setTitle:@"Option 2"];
[[cells objectAtIndex:2] setTitle:@"Option 3"];

[proto release];
[matrix release];

玩得开心!是的,这取自here,但我添加了一些个人意见来解释这个过程。

答案 1 :(得分:4)

取自here:

  

单选按钮实际上是按钮单元格的矩阵。独家   选择性是矩阵的一个属性。

     

要以编程方式创建按钮单元格矩阵,您可以完全相同   以编程方式操作IB作为您输入的结果。例如   创建一个NSMatrix实例,将其单元原型设置为NSButtonCell,设置   矩阵的属性通过其公共方法(相同的IB)   使用),并设置原型按钮单元格和/或所有的属性   包含纽扣电池。

另请参阅this link以获取有关如何以编程方式创建NSMatrix的更多示例代码。

答案 2 :(得分:2)

The NSButton Class reference is here

按钮编程主题,特别是单选按钮(带示例代码) can be found here