4

我正在编写一个程序,该程序在用户可以缩放的 NSScrollView 中嵌入了 NSView。我很想设置它,以便用户可以使用 MacBook Air 和新的一体式 MacBooks/MacBooks Pro 以及 Safari 和 iPhoto 等应用程序支持的多点触控捏合手势缩放视图。我已经搜索了 Apple 的文档,但不知道该怎么做。

  1. 这是否支持在 Mac OS X 10.5 Leopard 上使用公开可用的 API?
  2. 如果不是,私有 API 有多“糟糕”(例如,它只是一个未声明的常量还是一组全新的方法)?
4

1 回答 1

12

编辑: Snow Leopard 为手势和多点触控添加了支持的 API。请参阅Snow Leopard 的 AppKit 发行说明;⌘F 表示“手势”和“多点触控”(原文如此)。如果您在下面使用过它们,它们看起来会很熟悉,但可能存在一些细微差别,因此请阅读新文档。


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

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

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

一点也不差。您必须在视图中实现一些未记录的事件方法。由于您是实现方法的人,因此如果 Apple 更改方法,您不应该崩溃;将会发生的只是该功能将停止工作。

但是,如果您要从事件中检索绝对(而不是增量)放大或旋转,那么这些是事件的尚未记录的方法,因此您应该用消息保护这些消息respondsToSelector:并仔细检查范围方法的返回值。

于 2009-01-31T18:50:41.610 回答