Создание радиокнопки Cocoa программно - PullRequest
1 голос
/ 22 сентября 2009

Мне нужно сделать радиокнопку Cocoa программно, кто-нибудь может объяснить, как это можно сделать, или опубликовать хорошую ссылку, которая показывает, как это сделать хорошо.

Ответы [ 3 ]

9 голосов
/ 22 сентября 2009

Вот пример кода для программного создания радиокнопок:

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

Веселись! Да, это взято из здесь , но я добавил несколько личных комментариев, чтобы объяснить процесс.

4 голосов
/ 22 сентября 2009

Взято из здесь:

Радиокнопки на самом деле являются матрицей, если ячейки кнопок. Эксклюзивный избирательность является свойством матрицы.

Для программного создания матрицы ячеек кнопок вы делаете то же самое программные операции, которые IB выполняет в результате вашего ввода. например Создайте экземпляр NSMatrix, установите его прототип ячейки в NSButtonCell, установите что атрибуты матрицы через ее публичные методы (те же самые IB использует), и установить атрибуты ячейки прототипа кнопки и / или всех содержащиеся кнопки ячейки.

Также см. эту ссылку для получения дополнительной информации о том, как сделать NSMatrix программно.

2 голосов
/ 22 сентября 2009

Ссылка класса NSButton здесь

Темы программирования кнопок, в частности, радио кнопки (с примером кода) можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...