我是一个经验丰富的iPhone开发人员,开始使用我的第一个Mac应用程序.真正让我失望的一件事是UIView和NSView之间的差异.我似乎无法通过界面构建器设置NSView的背景颜色,因为我可以使用UIView.通过简单地向它发送一个setBackgroundColor:消息,我似乎无法做到这一点.我看到的所有示例都覆盖了drawRect:在NSView的子类中.这真的是唯一的方法吗?这里的概念差异是什么,为什么会这样?注意:我只是尝试将背景颜色设置为默认灰色.
回复:亚历克斯的回答:
这不仅仅是因为它更老了; 或者更确切地说; ...... 并不是说它更老了.事实是UIKit 更简单.UIView是一个比NSView更不通用的构造; Apple正在推动iPhone上内容丰富的应用程序的一般方法是使用OpenGL或Core Animation,将UIView大体上放到简单的容器中.在这种情况下,setBackgroundColor:非常有用.
另一方面,在Mac上,NSView是一个高度通用的界面元素,对于大多数用途,setBackgroundColor:只是毫无必要.10次中的9次,如果你在Mac上并改变背景颜色,这可能是因为你准备自己绘制用户界面元素,或者你正在做一些很可能不被AHIG宽恕的事情.
综上所述:
除了子类化之外别无他法.(NSView用于子类化,UIView用于插入和使用.)
| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |