2009-01-31 17 views
4

我正在编写一个程序,该程序在用户可以缩放的NSScrollView中嵌入了一个NSView。我很乐意设置它,以便用户可以使用MacBook Air支持的多点触控捏合手势和新的一体式MacBook/MacBooks Pro以及Safari和iPhoto等应用程序来缩放视图。我已经通过苹果的文档搜索,并不知道如何做到这一点。如何使用Mac OS X Cocoa事件进行多点触控手势

  1. 这是否支持在Mac OS X 10.5 Leopard上使用公共可用的API?
  2. 如果不是,私人API的“坏”程度如何(例如它只是一个未声明的常量或一组全新的方法)?

回答

12

编辑: Snow Leopard添加了支持的手势和多点触控API。见AppKit release notes for Snow Leopard; ⌘F用于“手势”和“多点触摸”(原文如此)。如果你使用了下面的代码,他们会很熟悉,但是可能会有一些细微差别,所以请阅读新的文档。


是使用的是Mac OS X 10.5 Leopard的公开可用的API支持?

第10.5.0根本不支持它,而10.5.1到10.5.6使您可以实现未记录的方法。

如果不是,那么私人API有多糟糕(例如,它只是一个未声明的常量或一组全新的方法)?

不错。 You have to implement some undocumented event methods in your view.由于你是实现方法的一个,如果Apple更改方法,则不应该崩溃;所有将发生的功能都将停止工作。但是,如果您要从事件中检索绝对(而非增量)放大或旋转,那么这些事件仍然是尚未记录的方法,因此您应该使用respondsToSelector:消息来保护这些消息,并小心执行范围检查方法的返回值。

+0

@ x3ro,而不是编辑它来重新定位“编辑”通知,这是一个微不足道的个人审美问题,为什么不编辑它以删除链接到未公开的事件方法,因为它现在是404? – Huperniketes 2011-06-18 12:00:53

相关问题