Objective c 通过编程,使可可按钮看起来像是按下的

Objective c 通过编程,使可可按钮看起来像是按下的,objective-c,cocoa,macos,nsbutton,Objective C,Cocoa,Macos,Nsbutton,我有一些关键事件,也对应于按钮。我必须设置/调用什么属性/方法使按钮看起来被按下(更改状态?)半秒钟?我解决这个问题的方法是将NSButton设置为“按下-按下-关闭”类型,然后在我的按键事件处理程序中使用以下代码: NSButton *button = [self.superview viewWithTag:event.keyCode]; if (button != nil && button.state == NSOffState) { [button perform

我有一些关键事件,也对应于按钮。我必须设置/调用什么属性/方法使按钮看起来被按下(更改状态?)半秒钟?

我解决这个问题的方法是将NSButton设置为“按下-按下-关闭”类型,然后在我的按键事件处理程序中使用以下代码:

NSButton *button = [self.superview viewWithTag:event.keyCode];
if (button != nil && button.state == NSOffState) {
    [button performClick:event];
    [button performSelector:@selector(performClick:) withObject:event afterDelay:0.5];
}

这将突出显示按钮,就像用户单击它一样,然后它将在半秒钟内再次单击它。

我相信按钮单元格的
-setHighlighted:
方法控制按钮是否被按下。更改按钮后,您可能还需要调用按钮上的
-setNeedsDisplay:
,并且该按钮可能会自行更改其单元格的高亮显示状态,因此,恐怕您可能需要四处摆弄才能使其正常工作

(不过,我必须承认,我对这一切都不完全确定。)

是的,就是这样:[(NSButtonCell*)yourButton.cell setHighlighted:Yes];不需要设置需要显示。谢谢