【发布时间】:2012-07-27 13:19:24
【问题描述】:
我有一个占据整个窗口的 NSImageView。图像视图没有边框,它设置为显示在左下方。所以这意味着无论窗口如何调整大小,视图的原点都与实际图像的原点匹配。
此外,图像比我在屏幕上完全可以合理地显示的要大得多。所以我也将 imageview 设置为按比例缩小图像的大小。但是,我似乎在任何地方都找不到这个比例因子。
我的最终目标是将鼠标按下事件映射到实际的图像坐标。为此,我想我还需要一条信息……显示的 NSImage 实际上有多大。
如果我查看[imageView bounds],我会得到图像视图的边界矩形,它通常会比图像大。
【问题讨论】:
-
我试过了。框架和边界等都是相对于 NSView/NSWindow 类型的对象。所以我可以得到视图或窗口本身的边界框架......问题是 NSImageView 没有在其所有边界上绘制。部分视图是空白的。我需要的是 NSImageView 缩小其图像的量,或者 ImageView 实际绘制的边界矩形(而不是它所拥有的)
-
现在,我正在使用一种解决方法,我不允许调整窗口大小,并从窗口中删除所有其他 UI 元素(如标题栏),这样我知道超级视图边界 = NSImageView 边界 = 实际图像的大小。
-
NSImages 没有框架。它们确实有尺寸,但尺寸是全尺寸图像,而不是它们实际绘制的尺寸。
标签: cocoa nsimage nsimageview