Cocoa NSImageView和NSImageCell之间的关系是什么?
似乎如果我在代码中创建一个Cocoa NSImageView和NSImageCell之间的关系是什么?,cocoa,interface-builder,cocoa-bindings,nsimageview,Cocoa,Interface Builder,Cocoa Bindings,Nsimageview,似乎如果我在代码中创建一个NSImageView,如果NSImageView变得比图像本身大,则无法使图像自动按比例放大。(奇怪的遗漏) 另一方面,如果我在IB中创建NSImageView,它似乎会以某种方式将NSImageCell附加到NSImageView,并且NSImageCell具有按比例上下缩放的选项,这就是我想要的 但是在IB中,我似乎无法理解NSImageView和NSImageCell之间的关系。我无法从NSImageView中删除NSImageCell,并且在绑定或其他任何地方
NSImageView
,如果NSImageView
变得比图像本身大,则无法使图像自动按比例放大。(奇怪的遗漏)
另一方面,如果我在IB中创建NSImageView
,它似乎会以某种方式将NSImageCell
附加到NSImageView
,并且NSImageCell
具有按比例上下缩放的选项,这就是我想要的
但是在IB中,我似乎无法理解NSImageView
和NSImageCell
之间的关系。我无法从NSImageView
中删除NSImageCell
,并且在绑定或其他任何地方都看不到连接
在代码中创建NSImageView
时,如何获得NSImageCell
的功能
如果这是显而易见的,很抱歉,但我习惯了uiimageview
,它们肯定不同于NSImageView
谢谢。您感到困惑的原因是
-[NSImageView setImageScaling:
上的文档错误,其中列出了可能的缩放选择。如果您查找NSImageScaling
,您将找到另一个选择nsimagescaleproportiallyupordown
您应该能够使用[NSImageView setImageScaling:nsimagescaleproportiallyupordown]
进行放大。你在这方面有困难吗?您还可以使用-cell
访问任何NSControl
的单元格
至于将单元格与控件(视图)分离的问题,这是功能远不如以前的计算机(接下来的一些计算机只有8MB内存)时代的遗留问题。单元提供了一个重量较轻的对象,不需要部分俯视全景。这在可能存在大量元素的情况下非常重要,例如在矩阵或表中。单元格的设计更易于复制和重用,非常类似于UITableViewCell
。与UITableViewCell
类似,相同的NSCell
可以重复使用以绘制不同的内容。细胞也共享一些单体。例如,大多数单元格通常只共享一个字段编辑器(NSTextView
)。当用户选择不同的文本字段进行编辑时,它会根据需要移动
在这样一个世界里,第一部iPhone的内存是下一部iPhone的10倍,台式机的内存通常是1000倍,在
NSCell
中的一些选择就没有那么有意义了。自10.7以来,OSX已经将一些东西从NSCell
中移开NSTableView
现在支持NSView
单元格以及NSCell
单元格。iPhoneOS发布时,UITableView
从一开始就在视图上启动。(当然,与OS X表视图相比,iPhone表视图是微不足道的,因此它比可用内存更容易选择。)感谢您的解释。我在iOS操作系统方面的经验比Mac操作系统丰富得多,并且错误地认为它们更相似。我甚至没有意识到所有的NSCONTROL都有一个NSCell…包括NSImageView。再次感谢。iPhone从近25年来关于如何最好地实现ObjC框架的经验中受益匪浅。对于我们这些在iPhone之前就在Cocoa工作的人来说,最初的iPhoneOS是一个难以置信的时刻,充满了“这太熟悉了,但是UIKit要容易得多。”另一方面,UIWebView是OSX WebView的一个苍白、悲伤的小影子。与CocoaText/NSTextView相比,TextKit/UITextView是可怜的。还有iOS的Security.framework中提供的一小部分功能…好吧,所以OSX在很多地方仍然更好,但UIKit仍然比AppKit好。我想知道为什么你的名字看起来如此熟悉…然后我在桌上看到了《突破限制》的副本。:)