`
Zhongwei_leg
  • 浏览: 545855 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

如何理解 File's Owner 与 First Responder

阅读更多

文章转载自 大象笔记

 

http://www.sunzhongwei.com

 

 

*** xib 文件是什么的缩写? 作用是什么? ***

.xib 文件存储 Interface Builder 布局。

 

NIB 和 XIB 都是 Interface Builder 的图形界面设计文档。引用《Cocoa Programming for Mac OSX》一书的说法,Interface Builder 把窗口、菜单栏以及窗口上的各种控件的对象都“冻结”在了一个 NIB文档里面了;程序运行时,这些对象将会“苏醒”。

 

简单地说,就是xib和nib都是一些对象的描述,而前者是xml格式,后者是一种二进制格式。二者的使用上没有什么区别,xcode/IB是两种格式都支持的。 xib比nib有个很明显的好处,就是xib可以很方便地进行diff操作。xib是文本文件,所以在版本控制方面比nib有优势。可能有人会说,反序列化的时候,xib肯定比nib慢很多吧。这个不需要担心的,因为在build的时候,xcode会把xib都转换为nib。最终用户使用的将会是nib内容,而不是xib。

 

*** Interface Builder 中的 File's Owner 和 First Responder 的作用分别是什么?***

File's Owner 表示视图控制器。用来关联 IB 中的 outlet (textfield, label)与实例变量(library classes 中定义)的关联。 First Responder 表示当前响应用户触摸的屏幕上的对象。在应用程序生命周期内, First Responder 在用户与屏幕交互时变化。例如,假设有一个表单。当用户触摸表单中的某个文本域时,那个文本域将成为活动文本域,并担当 First Responder 的角色。

 

*** 在一个事件相应的最后为什么要加上这句? ****

[field2 resignFirstResponder];

Notifies the receiver that it has been asked to relinquish its status as first responder in its window.

即,当前文本框完成显示任务后,告诉 receiver,“哥以完成任务,请求辞去 First Responder 的职务”

 

参考:

NIB 和 XIB 的区别

http://www.cocoachina.com/macdev/cocoa/2010/0326/844.html

 

xib和nib

http://www.surfchen.org/archives/393

 

XCode 自带帮助文档

 

分享到:
评论
2 楼 magicalboy 2012-03-21  
lich0079 写道
filer'owner 不一定是什么viewcontroller 
[[NSBundle mainBundle] loadNibNamed:@"UnitTableCell" owner:self options:nil]
IB里面创造都是一些对象  filer'owner意思是这些对象创建出来后要挂载到那个对象里面

1 楼 lich0079 2011-07-01  
filer'owner 不一定是什么viewcontroller 
[[NSBundle mainBundle] loadNibNamed:@"UnitTableCell" owner:self options:nil]
IB里面创造都是一些对象  filer'owner意思是这些对象创建出来后要挂载到那个对象里面

相关推荐

Global site tag (gtag.js) - Google Analytics