2010-07-07 61 views

回答

1

我解決了,這是我設置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]; 
} 

這將突出顯示該按鈕,就好像用戶點擊了它,然後在半秒內再次點擊它。

1

我相信按鈕單元的-setHighlighted:方法控制按鈕是否被按下。在更改按鈕後,您可能還需要在按鈕上調用-setNeedsDisplay:,並且該按鈕可能會自行更改其單元格的突出顯示狀態,所以恐怕您可能需要小心才能使其工作。

(我必須承認,雖然,我不能完全肯定任何關於這一點。)

+0

是的,這樣做是:[(NSButtonCell *)yourButton.cell setHighlighted:YES];不需要setNeedsDisplay。謝謝。 – Borzh 2015-07-09 16:35:54