概述
最近在公司接到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];
}
最后
以上就是体贴石头为你收集整理的Mac 鼠标事件的全部内容,希望文章能够帮你解决Mac 鼠标事件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复