NSImageView和NSImageCell之间有什么关系?

piz*_*lms 6 cocoa interface-builder cocoa-bindings nsimageview

似乎如果我创建一个NSImageView代码,如果NSImageView图像变得比图像本身大,则无法按比例自动缩放图像.(一个奇怪的遗漏)

另一方面,如果我NSImageView在IB中创建它,它似乎以某种方式附加NSImageCellNSImageView并且NSImageCell有一个选项按比例上下缩放,这就是我想要的.

但在IB,我似乎无法理解之间的关系NSImageViewNSImageCell.我无法删除NSImageCellNSImageView和我没有看到在绑定或其他地方的连接.

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

对不起,如果这是显而易见的,但我已经习惯了UIImageViews,他们肯定不同于NSImageView.

谢谢.

Rob*_*ier 9

你应该可以扩大使用范围[NSImageView setImageScaling:NSImageScaleProportionallyUpOrDown].你有这个麻烦吗?您也可以访问单元格以进行任何NSControl使用-cell.

至于从控件(视图)中分离单元格,这是功能强大的计算机(一些NeXT计算机只有8MB内存)的时代的延续.单元格提供了轻量级对象,不需要全视图的一些开销.这在可能存在许多元素的情况下很重要,例如在矩阵或表格中.单元格设计为更容易复制和重用,就像UITableViewCell.例如UITableViewCell,NSCell可以重复使用相同的内容来绘制不同的内容.细胞也共享一些单体.例如,通常只有一个字段编辑器(NSTextView)由大多数单元共享.当用户选择要编辑的不同文本字段时,它会根据需要移动.

在第一款iPhone拥有10倍内存的NeXT和台式机通常拥有1000倍内存的世界中,有些选择NSCell并没有多大意义.从10.7开始,OS X已经移除了一些东西NSCell.NSTableView现在支持NSView细胞和NSCell细胞.当iPhoneOS发布时,UITableView从一开始就开始观看.(当然,与OS X表视图相比,iPhone表视图是微不足道的,所以它更容易选择,而不仅仅是可用内存.)