我想让我NSSegmentedControl
在启用时选择一个段,而在禁用时没有选择段(iTunes 中的视图 NSSegmentedControl 具有的那种行为)。
这里有一些图像:
启用和选择
正确禁用
禁用但不正确
(*)我认识到我可以编写一个函数来在 BOOL 属性更改时调用,并且在这个函数中我可以设置所有分段或选择适当的分段,但我想知道是否有办法通过可可绑定或界面生成器。
更新:添加了一些问题的图片
我想让我NSSegmentedControl
在启用时选择一个段,而在禁用时没有选择段(iTunes 中的视图 NSSegmentedControl 具有的那种行为)。
这里有一些图像:
启用和选择
正确禁用
禁用但不正确
(*)我认识到我可以编写一个函数来在 BOOL 属性更改时调用,并且在这个函数中我可以设置所有分段或选择适当的分段,但我想知道是否有办法通过可可绑定或界面生成器。
更新:添加了一些问题的图片
编辑:我对此并不完全确定,但我认为“无选择占位符”是您最好的选择。http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CocoaBindingsRef/Concepts/BindingsOptions.html%23//apple_ref/doc/uid/20002304-187525
我仍然认为当您有条件地禁用控件时,您必须以编程方式指定不选择。
程序化解决方案可以是这样的:
- (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