Как правильно установить NSSegmentedControl включен - PullRequest
1 голос
/ 13 ноября 2010

Мне бы хотелось, чтобы мой NSSegmentedControl был выбран при включенном сегменте, а сегмент не выбран при отключенном (тип поведения, который имеет представление NSSegmentedControl в iTunes).

Вот некоторые изображения:

imagebam.com http://thumbnails34.imagebam.com/10640/95598d106393309.jpg включено и выбрано

imagebam.com http://thumbnails27.imagebam.com/10640/fa9e3c106393310.jpg правильно отключено

imagebam.com http://thumbnails22.imagebam.com/10640/239a02106393312.jpgотключено, но не правильно

(*) Я понимаю, что могу написать функцию, вызываемую при каждом изменении свойства BOOL, и в этой функции я могу установить все отсеянные сегменты или выбрать соответствующий, НО мне бы хотелосьчтобы узнать, есть ли способ сделать это через Cocoa Bindings или Interface Builder.

ОБНОВЛЕНИЕ: добавил несколько изображений проблемы

Ответы [ 2 ]

0 голосов
/ 13 ноября 2010

Программное решение может быть примерно таким:

- (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

0 голосов
/ 13 ноября 2010

РЕДАКТИРОВАТЬ: Я не совсем уверен в этом, но я думаю, что «Нет выбора заполнителя» является вашей лучшей ставкой.http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CocoaBindingsRef/Concepts/BindingsOptions.html%23//apple_ref/doc/uid/20002304-187525

Я все же думаю, что вам придется программно указывать отсутствие выбора при условном отключении элемента управления.

...