Creating a Cocoa radio button programatically

匿名 (未验证) 提交于 2019-12-03 10:24:21

问题:

I need to make a Cocoa radio button programatically, can anyone explain how this might be done or post a good link that shows how to do this well.

回答1:

Here's a sample code for creating radio buttons programatically:

//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]; 

Have fun! Yes, this is taken from here, but i added some personal comments to explain the process.



回答2:

Taken from here:

Radio buttons are in fact a matrix if button cells. The exclusive selectivity is a property of the matrix.

To programmatically create a matrix of button cells you do exactly the same operations programmatically that IB does as the result of your input. e.g. Create an NSMatrix instance, set its cell prototype to an NSButtonCell, set that attributes of the matrix via its public methods (the same ones IB uses), and set the attributes of the prototype button cell and or all of the contained button cells.

Also see this link for more sample code on how to make an NSMatrix programatically.



回答3:

The NSButton Class reference is here

Button programming topics, specifically Radio Button (with sample code) can be found here



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!