我有一个由我自己组装的文本系统支持的NSTextView,其内容与Cocoa文档的文本系统概述中的“手工组装文本系统”部分相同。它成功地在屏幕上显示了NSTextStorage的内容。
但是当我输入的时候,似乎什么都没有发生--屏幕上的文本没有改变。如果我选择文本,所选内容的形状表明文本已更改。如果我将文本复制并粘贴到TextEdit中,我甚至可以看到我的编辑。如果我输入的足够多,我可以让它抛出一个异常:
NSRunStorage, _NSBlockNumberForIndex(): index (5897) beyond array bounds (5881)天哪,这看起来像是我可以花大半天时间调试的东西。这里发生了什么事?
发布于 2010-11-16 10:43:04
确保将NSTextStorage连接到NSLayoutManager,如下所示:
[textStorage addLayoutManager:layoutManager];而不是像这样:
[layoutManager setTextStorage:textStorage]; //BAD关于-[NSLayoutManager setTextStorage:]的文档说,它永远不应该被直接调用,只应该被覆盖。显然这就是原因所在。希望我为你节省了几个小时的徒劳工作!
https://stackoverflow.com/questions/4190750
复制相似问题