Как правильно установить NSSegmentedControl включен
Я хотел бы иметь мой NSSegmentedControl
с выбранным сегментом, когда он включен, и без выбранного сегмента, когда он отключен (тип поведения, который имеет представление NSSegmentedControl в iTunes).
Вот несколько изображений:
http://thumbnails34.imagebam.com/10640/95598d106393309.jpg включен и выбран
http://thumbnails27.imagebam.com/10640/fa9e3c106393310.jpg отключен правильно
http://thumbnails22.imagebam.com/10640/239a02106393312.jpg отключен, но не правильно
(*) Я понимаю, что могу написать функцию, которая будет вызываться при каждом изменении свойства BOOL, и в этой функции я могу установить все сегменты, которые были отменены, или выбрать подходящий, НО я хотел бы знать, есть ли способ сделать это с помощью Привязки какао или построитель интерфейса.
ОБНОВЛЕНИЕ: добавлены некоторые изображения проблемы
2 ответа
Программное решение может быть примерно таким:
- (void)setSegmentEnabled:(BOOL)enabled{
if (enabled)
{
int vState = [[NSUserDefaults standardUserDefaults] integerForKey:@"SelectedSegmentView"];
[viewSegment setSelectedSegment:vState];
segmentEnabled = YES;
}
else
{
[viewSegment setSelected:NO forSegment:0];
[viewSegment setSelected:NO forSegment:1];
[viewSegment setSelected:NO forSegment:2];
segmentEnabled = NO;
}
}
Я просто реализую свой собственный установщик для свойства BOOL segmentEnabled
который связан с viewSegment
РЕДАКТИРОВАТЬ: Я не совсем уверен в этом, но я думаю, "Нет выбора заполнителя" является вашим лучшим выбором. http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CocoaBindingsRef/Concepts/BindingsOptions.html%23//apple_ref/doc/uid/20002304-187525
Я все еще думаю, что вам придется программно указывать отсутствие выбора, когда вы условно отключите элемент управления.