我希望我的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属性改变时我都可以编写一个函数来调用,在这个函数中我可以设置所有被删除的段或者选择合适的段,但是我想知道是否有办法通过Cocoa Bindings或Interface Builder实现这一目标。
更新:添加了一些问题图片
答案 0 :(得分:0)
我仍然认为,当你有条件地禁用控件时,你必须以编程方式指定没有选择。
答案 1 :(得分: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属性segmentEnabled
实现自己的setter,它与viewSegment