用Cocoa在Macbook Air中实现多点触摸(MultiTouch)
时间: 2009-06-11 19:21 点击: 次
苹果在最新发布的Macbook Air中,应用了最新的触摸板,这种触摸板实现了广为好评的iPhone中的多点触摸MultiTouch技术,你可以用两根或者三根手指在触摸板上做出叫做手势(Gestures)的动作,程序可以对你的动作进行诸如缩放、旋转、翻页等响应。而在未来,新的Macbook Pro也将带有这种全新的触摸板。

不过虽然触摸板硬件本身带有这种技术,不过目前也只有少量苹果随机自带的程序支持多点触摸功能。那么如何在你自己的应用程序中也加入这种全新体验的功能,就是本文讨论的课题。
需要注意本文的API并不存在于苹果的任何文档中,属于苹果的私有API。苹果在未来一定会提供多点触摸的相关API,本文所提及的内容可能在未来不再被支持或是有所变化。
方法
NSResponder中提供了三个新增加的方法用于实现MultiTouch:
-(void)magnifyWithEvent:(NSEvent *)anEvent
-(void)rotateWithEvent:(NSEvent *)anEvent
-(void)swipeWithEvent:(NSEvent *)anEvent
和获取鼠标点击消息一样,你只需要在自己的程序中实现这三个方法就可以获得MultiTouch的手势消息。
NSEvent增加了-(BOOL)isGesture 属性,可以用于获知是否为鼠标手势。
属性
各个方法中的NSEvent包含的属性如下:
-(void)magnifyWithEvent:(NSEvent *)anEvent

这个方法用于缩放手势,就是两个手指同时在触摸板上向对角线划动,即可产生包含如下消息的属性:
-(float)deltaZ
返回浮点值,这个数值将对应于NSEvent中的-(float)standardMagnificationThreshold,用于获知放大还是缩小。
-(void)rotateWithEvent:(NSEvent *)anEvent

这个方法用于旋转手势,就是两个手指同时在触摸板上旋转,即可产生包含如下消息的属性:
-(float)rotation
返回浮点值,这个数值将对应于NSEvent中的-(float)standardRotationThreshold,用于获知旋转的角度。
-(void)swipeWithEvent:(NSEvent *)anEvent

这个方法用于翻页手势,用三个手指向左或向右划动,即可产生包含如下消息的属性:
-(float)deltaX
-(float)deltaY
这两个值的取值范围在-1.0至1.0之间。分别用于判断上下划动还是左右划动。
特点
上面提供的API的最简单的用法就是在你自己的NSView subclass里直接实现。
苹果尚未公开这些API的原因可能主要是由于这些都是预先设置好的功能(缩放、旋转、划动),而开发者无法自己定制个性化的多点触摸手势。好处是非常简单,你只要在自己的程序中实现这些就可以得到响应的消息。而且因为不是调用这些方法,而是直接实现这些方法,即使这些方法在未来不再支持,或是你的程序在其他不带有MultiTouch触摸板的苹果电脑上运行,也仅仅是缺少了这些功能,你的程序本身并不会出错。
如果希望了解更多此方面的内容,您可以阅读这篇文章。
本文例子下载。
顶一下(2)
100%
踩一下(0)
0%
打印 上一篇:教程:如何在程序中加入Growl通知
下一篇:制作带拖放指示的DMG安装文件
发表评论
本类文章点击排行榜
- [06-11] 用WebKit和CSS制作可换肤的Coc
- [06-13] iPhone游戏策划/美工必看:帝国
- [06-11] 用Cocoa在Macbook Air中实现多点触
- [05-20] 美国UI设计公司skin factory作品
- [05-24] 软件美工的福音:N多PhotoSho
- [05-26] 软件界面设计原则
- [06-11] 教程:如何在程序中加入Gro
- [05-26] 100种图层样式打包分享
- [06-23] 什么是用户界面设计?
最近更新
- [06-23] 什么是用户界面设计?
- [06-13] iPhone游戏策划/美工必看:帝国时代III经典手绘原
- [05-26] 100种图层样式打包分享
- [05-26] 软件界面设计原则
- [05-25] 为软件配色头疼?看看配色卡。
- [05-24] 软件美工的福音:N多PhotoShop字体下载
- [05-20] 美国UI设计公司skin factory作品欣赏
- [05-20] aka Zamak 3D插画作品
- [05-19] 美工必看:比较全的配色方案及色标

制作带拖放指示的DMG安装文件
用WebKit和CSS制作可换肤的Cocoa界面