Objective c 如何正确设置NSSegmentedControl已启用

Objective c 如何正确设置NSSegmentedControl已启用,objective-c,cocoa,cocoa-bindings,nsuserdefaults,nssegmentedcontrol,Objective C,Cocoa,Cocoa Bindings,Nsuserdefaults,Nssegmentedcontrol,我想让我的NSSegmentedControl在启用时选择一个段,而在禁用时不选择任何段(iTunes中的视图NSSegmentedControl具有的那种行为) 以下是一些图片: 启用和选择 正确禁用 禁用但不正确 (*)我认识到我可以编写一个函数,在BOOL属性发生变化时调用,在这个函数中我可以设置所选的所有段或选择适当的段,但我想知道是否有办法通过Cocoa绑定或接口生成器来实现这一点 更新:添加了一些问题图像编辑:我不完全确定这一点,但我认为“无选择占位符”是最好的选择 我仍然认为

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

以下是一些图片:

启用和选择

正确禁用

禁用但不正确

(*)我认识到我可以编写一个函数,在BOOL属性发生变化时调用,在这个函数中我可以设置所选的所有段或选择适当的段,但我想知道是否有办法通过Cocoa绑定或接口生成器来实现这一点


更新:添加了一些问题图像

编辑:我不完全确定这一点,但我认为“无选择占位符”是最好的选择


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

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

- (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,它与
viewsecgment

绑定。哦,我知道,而且我是用Cocoa而不是Cocoa Touch编程的,因为我在Mac上:)好吧,让我失望。很抱歉。我不知道如何使用“无选择占位符”:S