看起来,如果我在代码中创建了一个NSImageView,那么如果NSImageView变得比图像本身大的话,就没有办法让图像按比例自动放大。(一项奇怪的遗漏)
另一方面,如果我在IB中创建NSImageView,它似乎以某种方式将一个NSImageCell附加到NSImageView,而NSImageCell有一个按比例向上和向下缩放的选项,这就是我想要的。
但是在IB中,我似乎无法理解NSImageView和NSImageCell之间的关系。我不能从NSImageCell中删除NSImageView,也看不到绑定或其他任何地方的连接。
在代码中创建NSImageCell时,如何获得NSImageView的功能?
很抱歉,如果这是显而易见的,但我已经习惯了UIImageViews,它们与NSImageView完全不同。
谢谢。
发布于 2013-11-06 19:00:10
您应该能够使用[NSImageView setImageScaling:NSImageScaleProportionallyUpOrDown]进行扩展。你对此有意见吗?您还可以使用NSControl访问任何-cell的单元格。
至于将单元格与控件(视图)分离的问题,这是对功能较弱的计算机(一些NeXT计算机只有8MB内存)的保留。单元格提供了一个重量较轻的对象,它不需要全视图的某些开销。在可能存在许多元素的情况下,例如在矩阵或表中,这一点很重要。单元格被设计成更易于复制和重用,就像UITableViewCell一样。与UITableViewCell一样,可以重复使用相同的NSCell绘制不同的内容。细胞也共用一些单身汉。例如,大多数单元格通常只共享一个字段编辑器(NSTextView)。当用户选择要编辑的不同文本字段时,它就会根据需要被移动。
在这样一个世界里,第一个iPhone的内存是NeXT的10倍,桌面通常有1000倍的内存,而NSCell中的一些选择就不那么有意义了。自10.7以来,OS已经将一些东西从NSCell移开了。NSTableView现在支持NSView单元和NSCell单元。当iPhoneOS发布时,UITableView从一开始就开始使用视图。(当然,与OS表视图相比,iPhone表视图很小,因此由于更多的原因,它比可用内存更容易选择。)
发布于 2013-11-06 18:56:07
您之所以感到困惑,是因为关于-[NSImageView setImageScaling:]的文档是错误的,其中列出了可能的缩放选择。如果您查找NSImageScaling,您将发现另一个选择NSImageScaleProportionallyUpOrDown。
https://stackoverflow.com/questions/19819980
复制相似问题