在NSCell子类中不会调用hitTest

时间:2011-01-31 01:43:42

标签: objective-c hittest nscell

我正在为我的项目开发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被调用,这对我没有多大帮助......

有什么想法吗? ^^

0 个答案:

没有答案