需要第一响应者说明

Zak*_*411 7 macos cocoa objective-c interface-builder

我之前在这里提出了一个关于使用First Responder的问题 - 并在此得到了回复:

第一响应者的麻烦

有人会介意给我一个"傻瓜"版本吗?作为Cocoa的新手,我真的不知道从哪种方法开始.我很快就给出答案

扎克

Pet*_*sey 22

第一响应者就是这个.

不过,你所询问的是目标行动.您有一个UI对象(按钮,菜单项),您需要导致多个事情发生,但UI对象只发送一个动作.

因此解决方案:让该行动做多件事.

将UI对象挂钩到您在控制器对象中实现的操作方法(在您的情况下,文档中).在该方法中,执行按钮需要执行的所有操作.

子类化解决方案基本上是相同的,除了不将UI对象挂钩到您的文档,您将它连接到字体管理器,但您还使字体管理器成为您创建的NSFontManager的子类的实例,而不是一个NSFontManager的实例直接.在您的子类中,您覆盖addFontTrait:并添加实现中的其他行为.在该方法的开始或结束时,您发送[super addFontTrait:sender]以调用NSFontManager的实现,因此原始实现完成.

很长的段落,但它实际上并没有那么多的工作:差别只是制作子类并使实例成为该子类的实例.


你之前说过"苹果文档非常模糊",但事实并非如此.恰好有很多,也许你没有看过正确的文件.

这些是您需要阅读的文档,从开始到结束,并按顺序:

编辑:此列表适用于Xcode 3.我在另一个答案中发布了此列表的更新(对于Xcode 4)版本.

  1. Objective-C编程语言
  2. Cocoa的内存管理编程指南
  3. 可可基础指南(解释目标行动等)
  4. 应用架构概述
  5. 资源编程指南
  6. Interface Builder用户指南
  7. Xcode 3指南:
    1. Xcode项目管理指南
    2. Xcode工作区指南
    3. Xcode构建系统指南
    4. Xcode调试指南
  8. 基于文档的应用程序概述

也有一个仪器用户指南,但不幸的是,一个模糊的-或者,更准确地说,不完整的.它省略了许多有用的信息,比如如何使用Instruments的Zombies模板来调试崩溃.这是一个高级概述,仅此而已.

另外,书签这些:

这是很多阅读,但它会告诉你你需要知道的一切,而且这个顺序大致是你需要知道的顺序.