1

我的项目在 Mac OSX 10.10/10.9 上运行良好,但在 10.11 中使用以下代码无法正常运行:

[(PDFAnnotationInk*)_activeAnnotation removeBezierPath:_path];

[_activeAnnotation setBounds:bound];                           

// Lazy, redraw entire view.        

 NSAffineTransform* transform = [NSAffineTransform transform]; 

[transform translateXBy:-bound.origin.x yBy:-bound.origin.y];

 [_path transformUsingAffineTransform:transform];

[(PDFAnnotationInk*)_activeAnnotation addBezierPath:_path]; 

[[_activeAnnotation page] removeAnnotation: _activeAnnotation];     

[self addAnnotationSelector:_activeAnnotation];

当我改变这个 [transform translateXBy:-bound.origin.x yBy:-bound.origin.y];

[转换 translateXBy:bound.origin.x yBy:bound.origin.y];

该应用程序在 OSX 10.11 上正常工作,但在 OSX 10.10/10.9 上不正确...

我不知道为什么,NSAffineTransform 在最新的 Mac OS X 10.11 中是否有不同的坐标系?如何解决此问题以使应用程序与 10.10/9 和 10.11 兼容?谢谢。

4

1 回答 1

1

我有同样的问题。没有记录如何定位注释的规则;它没有说墨迹路径必须相对于注释的原点,但它们确实如此。我认为苹果公司的某个人要么不小心弄坏了它,要么改变了他们对它应该如何工作的想法。

在他们再次改变主意(或修复错误)之前,我正在检查系统版本(使用 /System/Library/CoreServices/SystemVersion.plist 中的 ProductVersion 键)并按照 10.10 及更早版本的旧方法和新方法10.11 及更高版本的非反转原点的方式。

于 2015-11-14T13:13:04.797 回答