Я хочу реализовать группу радио с иконками, представляющими себя. И я нашел в документации от apple:Как реализовать радиостанцию значков?
Иконка Radio Buttons
Вы также можете иметь кнопку радио, что это кнопка значок; то есть тот, который в первую очередь определяется его значком и имеет мало или вообще не имеет текста. Если кнопка выключена, она, похоже, встает. Если кнопка включена, она, кажется, нажата. (Кнопка значка не может отображать смешанное состояние.)
Вы можете создать группу переключателей значков в любом Интерфейс Builder или программно. Если вы используете Interface Builder, начните с матрицы кнопок. Если вы создаете его программно, создайте матрицу кнопок. Затем измените режим отслеживания матрицы на NSRadioModeMatrix. Измените типы кнопок на NSPushOnPushOffButton, их позиции изображения на NSImageOnly, их типы без полей на квадратный тип рамки. Наконец, установите их изображения на то, что вы хотите.
Итак, я написал следующий код:
// self.matrix is bound in IB whose tracking mode is NSRadioModeMatrix
NSArray *cellArray = [self.matrix cells];
// Set the button type to NSPushOnPushOffButton
[[cellArray objectAtIndex:0] setButtonType:NSPushOnPushOffButton];
// Set image position to NSImageOnly
[[cellArray objectAtIndex:0] setImagePosition:NSImageOnly];
// Set bezel type to square bezel type
[[cellArray objectAtIndex:0] setBezelStyle:NSThickSquareBezelStyle];
// Finally set the image
[[cellArray objectAtIndex:0] setImage:[NSImage imageNamed:@"ImageA"]];
// Do it all over again
[[cellArray objectAtIndex:1] setButtonType:NSPushOnPushOffButton];
[[cellArray objectAtIndex:1] setImagePosition:NSImageOnly];
[[cellArray objectAtIndex:1] setBezelStyle:NSThickSquareBezelStyle];
[[cellArray objectAtIndex:1] setImage:[NSImage imageNamed:@"DensityMax"]];
Но что меня не удовлетворяет, то кнопка не имеет границ ободка, и не имеет выбранный state
, я имею в виду, я не могу сказать, какой из них сейчас нажат.
Так что я делаю неправильно? Пожалуйста, укажите это для меня, большое спасибо!
Обновленный мой ответ с тем, что я думаю, что вам не хватает – markhunte