Mac 鼠标事件

最近在公司接到Mac OS X系统下的应用程序开发,对于一个没有什么经验的人说,只有慢慢的摸索前行。以前一直做IOS软件开发,对OS X下面的构架了解较少。一开始的时候感觉的确不知道如何开始。好在老师有了Mac 下的应用。在这个项目中还是学到了很多知识。但是还是缺少一个系统的全面的学习。在Mac OS X 我学习的第一个知识就是NSOutlineView的使用,这个和Windows下的tree控件类似。一开始我没有找到很好的列子。就在Apple的官方下载了两个列子来学习。感觉还是有那么难,但是最终还是知道了如何使用这个控件。其实这个控件是用于树形结构的数据的管理,和我之前在IOS下利用自定义TableviewCell展开下拉列表所表现的功能是一样的。只是在OS X下用NSOoutlineview实现这个功能比较方便,不用管理层级级别缩进,因为这是Mac下专门用来展示树形数据的控件,比较专业。这次重点不说NSoutlineview的使用,下次把这方面的知识点梳理好了在详细道来。主要介绍Mac下的鼠标事件,Mac下是怎么响应鼠标事件的。

在谈到Mac下鼠标事件之前,我们先来看看在Ios下是怎么响应手指的触摸时间的。IOS的点击事件是toch事件,相对于COCOa中的鼠标事件要简单。在ios中处理点击事件分别是:

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event;//开始接触屏幕

- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event;//滑动的时候

- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event;//结束滑动的时候

- (void)cancelTrackingWithEvent:(UIEvent *)event; //

这个几个函数就能检测到你的手指从接触屏幕到结束。其实我们很多时候要触摸屏幕就是为了获取我们触摸或者滑动的点。那我们怎么获取点击的点呢?下面给出代给出我的代码示例。

-(BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event{

    CGPoint point=[touch locationInView:self];

}

-(void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event{

    CGPoint point=[touch locationInView:self];

}

-(BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event{

    CGPoint point=[touch locationInView:self];

}

用这个函数来获取点- (CGPoint)locationInView:(UIView *)view;如果在调这个函数时传参数是self,获取的点的坐标就是相对于本身这个view,如果是super获取的点就是相对于父视图的view。然后再对这些点做处理。

说完了IOS的在看看Mac下的鼠标点击事件,你可以选择性的重写这些方法来处理鼠标的点击

- (void)mouseDown:(NSEvent *)theEvent;

- (void)rightMouseDown:(NSEvent *)theEvent;

- (void)otherMouseDown:(NSEvent *)theEvent;

- (void)mouseUp:(NSEvent *)theEvent;

- (void)rightMouseUp:(NSEvent *)theEvent;

- (void)otherMouseUp:(NSEvent *)theEvent;

- (void)mouseMoved:(NSEvent *)theEvent;

- (void)mouseDragged:(NSEvent *)theEvent;

- (void)scrollWheel:(NSEvent *)theEvent;

- (void)rightMouseDragged:(NSEvent *)theEvent;

- (void)otherMouseDragged:(NSEvent *)theEvent;

- (void)mouseEntered:(NSEvent *)theEvent;

- (void)mouseExited:(NSEvent *)theEvent;

也来看看Mac下是怎么后去鼠标滑过的或是点击的点。

- (void)mouseDown:(NSEvent *)theEvent {

    NSPoint p=[self convertPoint:[theEvent locationInWindow] fromView:nil];

}

-(void)mouseDragged:(NSEvent *)theEvent{

   NSPoint p=[self convertPoint:[theEvent locationInWindow] fromView:nil];

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值