1

我想让我NSSegmentedControl在启用时选择一个段,而在禁用时没有选择段(iTunes 中的视图 NSSegmentedControl 具有的那种行为)。

这里有一些图像:

imagebam.com 启用和选择

imagebam.com 正确禁用

imagebam.com 禁用但不正确

(*)我认识到我可以编写一个函数来在 BOOL 属性更改时调用,并且在这个函数中我可以设置所有分段或选择适当的分段,但我想知道是否有办法通过可可绑定或界面生成器。

更新:添加了一些问题的图片

4

2 回答 2

0

编辑:我对此并不完全确定,但我认为“无选择占位符”是您最好的选择。http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CocoaBindingsRef/Concepts/BindingsOptions.html%23//apple_ref/doc/uid/20002304-187525

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

于 2010-11-13T03:27:59.177 回答
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;
     }
}

我只是为绑定的 BOOL 属性实现我自己的设置segmentEnabledviewSegment

于 2010-11-13T19:49:03.953 回答