Cocoa入门-使用OBjective-c的读书笔记2
2012-08-26 10:02
274 查看
第10,多文档架构
当前的应用程序主要分为两类,一类就是前面几张讲解的对话框程序,另一类,就是基于文档的应用程序,与MFC不同的是,MFC有多文档和单文档的差别,而Cocoa则只有多文档的架构,并没有刻意,去区分多文档结构和单文档结构。
关键点:
1、架构的概述,对于COCOA来说,它提供了各种类来支持多文档的架构,包括NSDocument,NSDocumentController,NSWindowController来支持多文档的结构,此外还提供了info.plist达到支持的文档类型的方式来支持文档。他们之间的相互调用关系如下:
每一需要打开的文件,需要对应一个NSDocumentController对象,确可以对应多个NSDocument对象,然后一个NSDocument对象可以对应多个NSWindowController对象,而每个NSWindowController对象可以对应一个NSWindow对象,NSWindow对象的直接目的就是为了显示文档内容,编辑文档内容等等。
2、NSDocumentController对象对应了主菜单上提供的文档的菜单操作,包括open,close,等等。
3、在xcode当中提供了基于文档的模版,该模版当中,提供了NSWindowController和NSDocumentController的默认对象,因此并不需要开发人员编写,这样做据apple的想法,应该目的就是简化多文档架构程序的开发周期。所以在使用模版开发时,关键在于编写NSDocument的子类实现而已。
4、NSDocument之类提供的关键方法:
-(NString *)windowNibName
-(void)windowControllerDidLoadNib
-(NSData*)dataOfType:(NSString*)typename error:(NSError**)outError // 主要用于保存操作。
-(BOOL)readFromData:(NSData*)data ofType:(NSString*)typeName error:(NSError*)outError // 主要用于读取文件的内容。
第11,多信息文本的处理
关键点
1、支持的文本数据类型,包括rtf,rtfd(这个数据类型就是多信息文本数据类型,该类型可以包括属性,因此通常使用NSAttributeString方式处理,而且,RTFD其实是个包类型,该类型会将文件的图片,文档以文件包的形式存储。)
2、对于RTFD类型文件,存取和读取使用如下函数:
-(BOOL)readFromFileWrapper:(NSFileWrapper*)fileWraper ofType:(NSString*)typeName error:(NSWrror**)outError
-(NSFileWrapper*)fileWrapperOfType:(NSString*)typeName error:(NSError**)outError
当前的应用程序主要分为两类,一类就是前面几张讲解的对话框程序,另一类,就是基于文档的应用程序,与MFC不同的是,MFC有多文档和单文档的差别,而Cocoa则只有多文档的架构,并没有刻意,去区分多文档结构和单文档结构。
关键点:
1、架构的概述,对于COCOA来说,它提供了各种类来支持多文档的架构,包括NSDocument,NSDocumentController,NSWindowController来支持多文档的结构,此外还提供了info.plist达到支持的文档类型的方式来支持文档。他们之间的相互调用关系如下:
每一需要打开的文件,需要对应一个NSDocumentController对象,确可以对应多个NSDocument对象,然后一个NSDocument对象可以对应多个NSWindowController对象,而每个NSWindowController对象可以对应一个NSWindow对象,NSWindow对象的直接目的就是为了显示文档内容,编辑文档内容等等。
2、NSDocumentController对象对应了主菜单上提供的文档的菜单操作,包括open,close,等等。
3、在xcode当中提供了基于文档的模版,该模版当中,提供了NSWindowController和NSDocumentController的默认对象,因此并不需要开发人员编写,这样做据apple的想法,应该目的就是简化多文档架构程序的开发周期。所以在使用模版开发时,关键在于编写NSDocument的子类实现而已。
4、NSDocument之类提供的关键方法:
-(NString *)windowNibName
-(void)windowControllerDidLoadNib
-(NSData*)dataOfType:(NSString*)typename error:(NSError**)outError // 主要用于保存操作。
-(BOOL)readFromData:(NSData*)data ofType:(NSString*)typeName error:(NSError*)outError // 主要用于读取文件的内容。
第11,多信息文本的处理
关键点
1、支持的文本数据类型,包括rtf,rtfd(这个数据类型就是多信息文本数据类型,该类型可以包括属性,因此通常使用NSAttributeString方式处理,而且,RTFD其实是个包类型,该类型会将文件的图片,文档以文件包的形式存储。)
2、对于RTFD类型文件,存取和读取使用如下函数:
-(BOOL)readFromFileWrapper:(NSFileWrapper*)fileWraper ofType:(NSString*)typeName error:(NSWrror**)outError
-(NSFileWrapper*)fileWrapperOfType:(NSString*)typeName error:(NSError**)outError
相关文章推荐
- Cocoa入门-objective-c的读书笔记3
- Cocoa入门 - 使用Objective-c读书笔记1
- Cocoa入门 使用objective-c 书上的错误例子
- iOS学习——Using Swift with Cocoa and Objective-C--在同个工程中使用Swift和在同个工程中
- Windows上使用Objective-C和Cocoa
- Windows上使用Objective-c和Cocoa
- objective-c中使用cocoa的NSPredicate,谓词(十四)
- Using Swift with Cocoa and Objective-C--在同个project中使用Swift和在同个project中
- Windows上使用Objective-c和Cocoa
- objective-c中使用cocoa的NSPredicate,谓词(十四)
- Windows上使用Objective-c和Cocoa
- 读书笔记:maven入门- 使用maven进行测试
- objective-c中使用cocoa的NSPredicate,谓词
- Objective-C 语言入门教程 | MacCocoa
- Objective-C入门 简介Cocoa框架
- Using Swift with Cocoa and Objective-C--在同个工程中使用Swift和在同个工程中
- Objective-C入门 简介Cocoa框架
- Objective-C入门01:使用Xcode新建一个工程
- objective-c中使用cocoa的NSPredicate,谓词(十四)
- Objective-C入门 简介Cocoa框架