macOS-鼠标

2018-07-18  本文已影响69人  VictorZhangWang

鼠标跟踪

如果直接重写
-(void)mouseMoved:(NSEvent *)event
-(void)mouseExited:(NSEvent *)event
-(void)mouseEntered:(NSEvent *)event
鼠标经过时是不会触发的,需要给NSView添加一个NSTrackingArea

-(void)awakeFromNib
{
    [self addTrackingArea];
}
-(void)mouseMoved:(NSEvent *)event
{
    NSLog(@"-- mouseMoved ");
}
-(void)mouseExited:(NSEvent *)event
{
    NSLog(@"-- mouseExited ");
}
-(void)mouseEntered:(NSEvent *)event
{
    NSLog(@"-- mouseEntered ");
}

-(void)addTrackingArea
{
    NSTrackingArea *are = [[NSTrackingArea alloc] initWithRect:self.bounds options:NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved | NSTrackingActiveInKeyWindow owner:self userInfo:nil];
    [self addTrackingArea:are];
}

鼠标样式

鼠标经过view部分区域是改变样式:

当鼠标经过TestSubView的(0,0,40,40)区域是会改变状态

上一篇 下一篇

猜你喜欢

热点阅读