看来,如果我在代码中创建NSImageView
,则如果NSImageView
变得比图像本身大,则无法自动按比例放大图像。 (一个奇怪的遗漏)
另一方面,如果我在IB中创建NSImageView
,似乎将NSImageCell
附加到NSImageView
上,并且NSImageCell
具有按比例缩放的选项,这正是我想要的。
但是在IB中,我似乎无法理解NSImageView
和NSImageCell
之间的关系。我无法从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/