“在15分钟内构建文本编辑器”参考示例不起作用

时间:2010-02-10 16:51:48

标签: cocoa nstextview nsdocument

我正在努力研究NSDocument,所以我尝试了文本系统概述参考中的Building a Text Editor in 15 Minutes示例。

我对建议的代码做了一些更改,例如used属性和Synthesis,而不是声明和定义访问器方法。

我遵循了参考文献中的每一步,但未能实施第5步:

  

如果尚未打开,请双击MyDocument.xib以打开   Interface中的文档窗口   生成器。从Xcode,拖动   将MyDocument.h文件图标放到   MyDocument.xib的文档窗口。   此步骤通知MyDocument.xib   文件即MyDocument对象   界面现在有一个出口变量   命名为textView。

当我编译时,它在NSDocument的子类中给了我以下警告:

  

myDocument可能无法响应setString

MyDocument窗口没有出现,每次我尝试执行时都会在控制台中显示此消息:

  

- [MyDocument string]:无法识别的选择器发送到实例0x215970

有谁能告诉我哪里可能出错了?我试图在Snow Leopard上运行它...检查代码,你也可以从here下载它。

2 个答案:

答案 0 :(得分:1)

  

我正在努力研究NSDocument,所以我尝试了构建文本   “文本系统概述”参考中的15分钟示例编辑。

     

我对建议的代码做了一些更改,例如used属性   并合成代替声明和定义存取方法。

我知道这已经很老了,但是这个例子使用了一个ivar NSAttributedString *mString;所以你需要更改名称或使用类似的东西: -

@property(copy, getter=string, setter=setString:) NSAttributedString *mString;

答案 1 :(得分:0)

我认为在当前的Xcode工具中实际上不需要第5步,因为在保存头文件时Interface Builder会自动选择这些更改。我认为这是在Xcode Tools 3中添加的。

我没有看过你的项目,但听起来好像你的MyDocument.xib文件中有一些连接到错误的东西。大的线索是你的MyDocument“不响应选择器setString”......这个消息出现的事实意味着这正是你的项目试图做的事情。鉴于您正在使用的指南的主题,听起来像-setString:用于文本视图的消息被发送到您的文档(MyDocument.xib中的文件所有者)。