看来,如果我在代码中创建NSImageView,则如果NSImageView变得比图像本身大,则无法自动按比例放大图像。 (一个奇怪的遗漏)

另一方面,如果我在IB中创建NSImageView,似乎将NSImageCell附加到NSImageView上,并且NSImageCell具有按比例缩放的选项,这正是我想要的。

但是在IB中,我似乎无法理解NSImageViewNSImageCell之间的关系。我无法从NSImageCell中删除NSImageView,并且在绑定(bind)或其他任何地方都看不到该连接。

在代码中创建NSImageCell时如何获得NSImageView的功能?

抱歉,如果这很明显,但是我已经习惯了UIImageViews,它们肯定不同于NSImageView

谢谢你。

最佳答案

您应该能够使用[NSImageView setImageScaling:NSImageScaleProportionallyUpOrDown]进行扩展。你有麻烦吗?您还可以使用NSControl访问任何-cell的单元格。

至于将单元格与控件( View )分离,这是功能较弱的计算机(某些NeXT计算机只有8MB的内存)时代的一个保留。像元提供了重量较轻的对象,不需要一些全 View 的开销。在可能存在大量元素(例如矩阵或表)的情况下,这一点很重要。像UITableViewCell一样,单元被设计为易于复制和重用。像UITableViewCell一样,相同的NSCell可以重复使用以绘制不同的内容。单元也共享一些单例。例如,大多数单元通常只共享一个字段编辑器(NSTextView)。只要用户选择不同的文本字段进行编辑,它就会根据需要移动。

在第一个iPhone的内存是NeXT的10倍,而台式机通常是1000倍的内存的世界中,NSCell中的某些选择没有多大意义。从10.7开始,OS X从NSCell移开了一些东西。 NSTableView现在支持NSView单元格和NSCell单元格。当iPhoneOS发布时,UITableView从一开始就在 View 上开始使用。 (当然,与OS X表格 View 相比,iPhone表格 View 微不足道,因此出于更多原因,它比简单的可用内存更容易选择)。

关于cocoa - NSImageView和NSImageCell之间是什么关系?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19819980/

10-11 14:52