我有一个 NSSegmentedControl
,其中,在用户单击时,在将操作发送到其目标之前应满足一些条件。
到目前为止,我设法通过覆盖 -mouseDown
事件处理程序并仅在成功检查我的条件后调用分段控制的 [super mouseDown]
处理程序来做到这一点。
只有一个问题。在调用 [super mouseDown]
之前,用户没有任何视觉线索表明某个段已被单击。
所以问题是:有没有办法以编程方式设置“突出显示”状态(或多或少类似于 NSButtons
的“setHighlighted
”)?
最佳答案
您可以在操作方法中取消选择单击的段。 您可以通过其他操作方法绕行
- (IBAction)toggleSegments:(id)sender
{
NSSegmentedControl *segmentedControl = sender;
NSInteger selectedSegment = segmentedControl.selectedSegment;
if (! conditionsAreMet) {
[segmentedControl setSelected:NO forSegment:selectedSegment];
return;
}
[NSApp sendAction:@selector(reallyToggleSegments:) to:nil from:sender];
}
关于cocoa - NSSegmentedControl 以编程方式突出显示段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26756715/