1

我想让我的NSSegmentedControl启用时选择了一个段,并禁用时没有选择段(视图NSSegmentedControl在iTunes中有这种行为)。如何正确设置启用NSSegmentedControl

这里是一些图片:

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属性发生变化,并且在这个函数中我可以设置所有被desected的段或者选择合适的段,但是我想知道是否有方法t o通过Cocoa Bindings或Interface Builder来完成。

UPDATE:问题补充

回答

0

的编程解决方案可以是这样的:

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

我只是执行自己制定者正在为其与viewSegment

0

编辑的一些图片:我不能完全肯定这一点,但我认为“没有选择占位符”是你最好的选择。 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CocoaBindingsRef/Concepts/BindingsOptions.html%23//apple_ref/doc/uid/20002304-187525

我仍然认为,当您有条件地禁用控件时,您将不得不以编程方式指定没有选择。

+0

绑定哦,我知道了BOOL财产segmentEnabled,再加上我m编程与可可不可可触摸ergo我在Mac上:) – rano 2010-11-13 07:22:20

+0

很好,让我失望。对于那个很抱歉。 – griotspeak 2010-11-13 14:08:51

+0

我不明白如何使用“无选择占位符”:S – rano 2010-11-13 19:44:26