Tôi muốn kiểm tra xem NSButton tùy chỉnh của tôi hiện có ở trạng thái được nhấn hay không (người dùng đang nhấp vào nó) trong phương thức drawRect tùy chỉnh của tôi. Một cái gì đó như thế này:Kiểm tra xem NSButton có nằm trên 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];
}
Làm cách nào bạn kiểm tra một thứ như thế? Có thể không?
SOLUTION
tôi đã kết thúc kiểm tra mouseDownFlags trên các tế bào nút. Không biết nếu đó là "đúng" cách để làm điều đó, vì vậy hãy cho tôi biết nếu bạn có một gợi ý tốt hơn:
- (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];
}
Tôi đã thử self.state, nhưng nó chỉ hoạt động cho thời điểm nút bấm là "Bật" hoặc "Tắt"! Vì vậy, nút là "On", một khi tôi đã nhấn nó xuống và phát hành nó. Tôi muốn kiểm tra xem liệu việc sử dụng có được nhấn xuống không. MouseDown cũng là một lựa chọn, nhưng tôi không thể nhận được mouseUp để làm việc vì một lý do nào đó. –