我正在为我的项目开发NSCell
的子类。
在某些情况下,此子类在其视图上绘制了NSButtonCell
,其中包含:
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
...
if (self.mode == PMVersatileCellButton) {
[_button drawWithFrame:cellFrame inView:controlView];
inView:controlView];
} else {
...
}
[super drawInteriorWithFrame:cellFrame inView:controlView];
}
没有概率。关于绘图,问题是响应点击按钮!
我正试着这样做:
- (NSUInteger)hitTestForEvent:(NSEvent *)event inRect:(NSRect)frame ofView:(NSView *)controlView {
NSLog(@"hitTest !");
return [super hitTestForEvent:event inRect:frame ofView:controlView];
}
并且:
+ (BOOL)prefersTrackingUntilMouseUp {
return YES;
}
- (BOOL)startTrackingAt:(NSPoint) inView:(NSView *)
- (BOOL)trackMouse:(NSEvent *) inRect:(NSRect) ofView:(NSView *) untilMouseUp:(BOOL)
- (BOOL)continueTracking:(NSPoint) at:(NSPoint) inView:(NSView *)
- (void)stopTracking:(NSPoint) at:(NSPoint) inView:(NSView *) mouseIsUp:(BOOL)
但是hitTest或其他任何人都永远不会被召唤......
只有+ (BOOL)prefersTrackingUntilMouseUp
被调用,这对我没有多大帮助......
有什么想法吗? ^^