我想檢查我的自定義NSButton目前是否處於按下狀態(用戶點擊它)在我的自定義drawRect方法中。這樣的事情:檢查NSButton在drawRect上是否關閉
- (void)drawRect:(NSRect)dirtyRect{
if ([self buttonIsInPressedState]) {
[[self alternateBGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}else{
[[self BGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}
[super drawRect:dirtyRect];
}
你會如何檢查這樣的事情?可能嗎?
SOLUTION
我結束了檢查上的按鈕電池的mouseDownFlags。不知道這是否是「正確」的方式做到這一點,所以讓我知道,如果你有更好的建議:
- (void)drawRect:(NSRect)dirtyRect{
if ([self.cell mouseDownFlags] == 0) {
[[self BGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}else{
[[self alternateBGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}
[super drawRect:dirtyRect];
}
我試過self.state,但它只適用於按鈕是「開」或「關」!所以按鈕是「開」,一旦我按下並釋放它。我想檢查是否使用CURRENTLY按下。 MouseDown也是一個選項,但我無法使mouseUp因某種原因而工作。 – 2013-02-22 16:26:10