我正在编写一个程序,它在NSScrollView中嵌入了一个NSView,用户可以放大.我很乐意进行设置,以便用户可以使用MacBook Air和新的unibody MacBooks/MacBooks Pro支持的多点触控捏动手势以及Safari和iPhoto等应用程序来缩放视图.我已经通过Apple的文档进行了搜索,无法弄清楚如何做到这一点.
是否支持在Mac OS X 10.5 Leopard上使用公开的API?
如果不是,私有API有多"糟糕"(例如,它只是一个未声明的常量或一组全新的方法)?
Peter Hosey.. 12
编辑: Snow Leopard添加了支持手势和多点触控的API.请参阅Snow Leopard的AppKit发行说明 ; ⌘F表示"手势"和"MultiTouch"(原文如此).如果您使用下面的内容,它们看起来会非常熟悉,但可能存在一些细微差别,所以无论如何都请阅读新文档.
是否支持在Mac OS X 10.5 Leopard上使用公开的API?
No. 10.5.0根本不支持它,10.5.1到10.5.6使您实现了未记录的方法.
如果不是,私有API有多"糟糕"(例如,它只是一个未声明的常量或一组全新的方法)?
一点也不差.您必须在视图中实现一些未记录的事件方法.由于您是实施这些方法的人,因此如果Apple更改方法,您不应该崩溃; 所有这一切都将发生,该功能将停止工作.
但是,如果您要从事件中检索绝对(非delta)放大或旋转,那么这些是事件的尚未记录的方法,因此您应该使用respondsToSelector:
消息保护这些消息并对该事件执行仔细的范围检查.方法的返回值.
编辑: Snow Leopard添加了支持手势和多点触控的API.请参阅Snow Leopard的AppKit发行说明 ; ⌘F表示"手势"和"MultiTouch"(原文如此).如果您使用下面的内容,它们看起来会非常熟悉,但可能存在一些细微差别,所以无论如何都请阅读新文档.
是否支持在Mac OS X 10.5 Leopard上使用公开的API?
No. 10.5.0根本不支持它,10.5.1到10.5.6使您实现了未记录的方法.
如果不是,私有API有多"糟糕"(例如,它只是一个未声明的常量或一组全新的方法)?
一点也不差.您必须在视图中实现一些未记录的事件方法.由于您是实施这些方法的人,因此如果Apple更改方法,您不应该崩溃; 所有这一切都将发生,该功能将停止工作.
但是,如果您要从事件中检索绝对(非delta)放大或旋转,那么这些是事件的尚未记录的方法,因此您应该使用respondsToSelector:
消息保护这些消息并对该事件执行仔细的范围检查.方法的返回值.