cocoa黏贴板和Nil-Target Action
来源:互联网 发布:淘宝刷钻软件 编辑:程序博客网 时间:2024/04/30 14:36
黏贴板:
黏贴板操作,在MAC系统当中是一个多个进程间通信的一种方式。他的实现原理是mac当中后台运行了一个pboard的黏贴板的进程,然后A程序会使用NSPasteboard将需要黏贴的数据拷贝到这个pboard进程中,然后B程序,通过NSPasteboard从pboard进程获取数据。
MAC黏贴板有一个特点就是,他可以黏贴不同类型的数据当黏贴板当中。
基本流程是,A程序首先会放个数组到黏贴板程序中,告诉黏贴板这个数据支持哪些数据类型。B程序会询问黏贴板,有哪些数据类型可用,然后读取这些数据。
NSPasteboard类,有很多方法,比较重要的是:
+ (NSPasteboard *)generalPasteboard 返回一个黏贴板,以供使用
+ (NSPasteboard *)pasteboardWithName:(NSString *)name 返回一个特定名称的黏贴板,以供使用。
- (BOOL)setData:(NSData *)data forType:(NSString *)dataType 向黏贴板写数据
- (NSData *)dataForType:(NSString *)dataType 从黏贴板读数据
Nil-target action
这部分的描述,说实话笔者也不是非常清楚,尝试着理解一下。
对于cut、copy、paste,通常这些操作,应该是当前选中的控件进行,比如说当前选中了对话框那么这些操作就应该是针对这些对话框的,如果当前选择的是edit,那么就应该是针对edit的。
那么cocoa如何实现上述过程的哪?答案就是NIL-TARGET ,通过将控件的target设置为nil实现,方法是将copy,cut操作拖动到First Responder,从而实现的。
其实是,当一个控件的action为nil时,cocoa会按照如下顺序,查找对应的响应。
1、key windows的first respondre
2、key window的委托
3、如果是Document模板,就查NSWindowcontroller,以及NSDocument本身。
4、main windows 与key windows相同的部分再查找一次。
5、NSApplication的实例
6、NSApplication的委托
7、NSDocumentController文档的控制器
- cocoa黏贴板和Nil-Target Action
- [Objective-C] Cocoa's Target-Action Pattern
- [Cocoa] Target & Action, 另外一种响应事件的方法
- vbox虚拟机和主机共享黏贴板
- 苹果开发之Cocoa编程(第三版) 第5章 Target/Action
- Target-action:
- Target-Action
- Target-Action
- Target-Action
- Target-Action
- target action
- Target-Action
- Target-Action
- target-action
- 代理模式和target-action模式
- A nil-targeted action
- android 复制黏贴板。
- iphone开发cocoa中nil,NSNull,Nil的使用区别
- CentOS 编译安装 Lua LuaSocket
- 用JavaScript实现UrlEncode和UrlDecode的脚本代码
- strtok_r用法
- fork的理解
- toad导出DDL脚本,包括数据
- cocoa黏贴板和Nil-Target Action
- FudanNLP 复旦分词系统 小试一把
- 判断文本框为时间格式HH:mm
- STM32为什么必须先配置时钟再配置GPIO
- XCode 4.2.1 项目的几个模版说明
- 古希腊神话故事8 :彭透斯
- iOS平台内存常见问题
- mydlink.asp的解析
- 二进制位 :或 异或 与 操作