Apple代码发出的“糟糕”消息

时间:2009-09-02 19:53:26

标签: osx-snow-leopard

我在NSTextView子类中有一个调用,如下所示:

[[self textStorage] replaceCharactersInRange:fullRange withAttributedString:sa];

此调用过去工作正常,现在(在Snow Leopard安装之后)在控制台中生成一条短消息:“糟糕”。它不会崩溃,它只是生成此消息,然后无法正确设置文本。 “哎呀”消息来自Apple代码,而非我的代码,这绝对令人愤怒。

有谁能告诉我发生了什么事?为什么NSTextView EVER的textStorage会生成此消息?

我不知道生成Oops消息时是否相关,fullRange等于(0,0)。

...后...

好吧,我已经成功解决了这个问题。这听起来很疯狂。事实证明,我正在使用的NSTextView作为awakeFromNib例程的一部分添加到NSStatusItem中。无论出于何种原因,Snow Leopard拒绝显示状态项,直到awakeFromNib返回。

当我将显示状态项的代码移动到applicationDidFinishLaunching时,问题就消失了。

你说,我疯了吗?我知道,这听起来很傻,但是自己尝试使用sleep()。准备一个statusItem然后在awakeFromNib例程中sleep()。在睡眠结束并且awakeFromNib返回之前,statusItem不会出现。

1 个答案:

答案 0 :(得分:1)

请通过http://bugreport.apple.com提交错误(并在此处附上错误编号)。

我可以看到基金会如何导致这种情况发生。你的范围是(0,0)似乎有点奇怪。您是否尝试在文本存储的开头插入字符串?如果是,请改用-insertAttributedString:atIndex:

如果修复了糟糕,请仍然提交错误。基金会肯定比“哎呀”更有帮助!

相关问题