NSAffineTransform 在 Mac OS X 10.11 中是不是有不同的坐标系?

Posted

技术标签:

【中文标题】NSAffineTransform 在 Mac OS X 10.11 中是不是有不同的坐标系?【英文标题】:Does NSAffineTransform have different Coordinate system in Mac OS X 10.11?NSAffineTransform 在 Mac OS X 10.11 中是否有不同的坐标系? 【发布时间】:2015-10-24 09:34:03 【问题描述】:

我的项目在 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 上运行不正确...

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

我也是!希望他们能解决这个问题

以上是关于NSAffineTransform 在 Mac OS X 10.11 中是不是有不同的坐标系?的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X上的Quitar acls de un fichero o directorio

mac锛欸o瀹夎鍜岄厤缃?GoLand瀹夎鍜屼娇鐢ㄤ箣瀹屾暣鏁欑▼

为啥在我的 Mac 上编译的 C++ 库不能在服务器上运行?

Mac Android Studio 快捷键汇总

MAC Rubywoo

mac动态链接库的生成和使用