我的项目在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];
到
[transform 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?感谢。
答案 0 :(得分:1)
我遇到了同样的问题。没有记录如何定位注释的规则;没有任何地方说墨迹必须与注释的原点相关,但它们确实如此。我认为Apple的某个人不小心打破了它,或者改变了他们应该如何运作的想法。
直到他们再次改变主意(或修复错误),我正在检查系统版本(使用/System/Library/CoreServices/SystemVersion.plist中的ProductVersion键)并以10.10及更早版本的旧方式执行,以及10.11及以后的非倒置原点的新方法。