以编程方式按下Cocoa按钮

时间:2010-07-07 21:52:45

标签: objective-c cocoa macos nsbutton

我有一些关键事件,也与按钮相对应。我必须设置/调用按钮看起来很沮丧(改变状态?)半秒钟的属性/方法?

2 个答案:

答案 0 :(得分:1)

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

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];
}

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

答案 1 :(得分:1)

我相信按钮单元格的-setHighlighted:方法控制按钮是否按下。更改后,您可能还需要在按钮上调用-setNeedsDisplay:,按钮可能会自动更改其单元格的突出显示状态,因此我担心您可能需要摆弄它才能使其正常工作。 / p>

(但我必须承认,我并不完全确定这一点。)