1

トラッキングエリアを試していて、問題があったので、この簡単なプログラムをテストとして作成しました。ビュー(ウィンドウのコンテンツビュー)の左下隅に1つの追跡領域を作成しましたが、ビューのmouseEnteredどこに出入りしても、メッセージを受信および終了します。また、このコードをinitメソッドに入れてみましたawakeFromNibが、同じ結果になりました。

@implementation Parent //This view is the contentView of the main window

-(void)viewDidMoveToWindow{
    NSLog(@"In viwDidMoveToWindow");
    NSTrackingArea *area = [[NSTrackingArea alloc]initWithRect:NSMakeRect(0,0,50,50) options:NSTrackingInVisibleRect |NSTrackingMouseEnteredAndExited |NSTrackingActiveInActiveApp owner:self userInfo:nil];
    [self addTrackingArea:area];
}

-(void)mouseEntered:(NSEvent *)theEvent {
    NSLog(@"Entered");
}

-(void)mouseExited:(NSEvent *)theEvent {
    NSLog(@"Exited");
}

@end

トラッキングエリアが尊重されないのはなぜですか?

4

1 に答える 1

1

使用しているオプションに関係しています。代わりに使用してみてください

options:NSTrackingActiveAlways | NSTrackingMouseEnteredAndExited
于 2012-04-04T04:02:30.950 に答える