我在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不会出现。答案 0 :(得分:1)
请通过http://bugreport.apple.com提交错误(并在此处附上错误编号)。
我可以看到基金会如何导致这种情况发生。你的范围是(0,0)似乎有点奇怪。您是否尝试在文本存储的开头插入字符串?如果是,请改用-insertAttributedString:atIndex:
。
如果修复了糟糕,请仍然提交错误。基金会肯定比“哎呀”更有帮助!