首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对未到达屏幕的NSTextView的更改

对未到达屏幕的NSTextView的更改
EN

Stack Overflow用户
提问于 2010-11-16 10:40:01
回答 1查看 205关注 0票数 0

我有一个由我自己组装的文本系统支持的NSTextView,其内容与Cocoa文档的文本系统概述中的“手工组装文本系统”部分相同。它成功地在屏幕上显示了NSTextStorage的内容。

但是当我输入的时候,似乎什么都没有发生--屏幕上的文本没有改变。如果我选择文本,所选内容的形状表明文本已更改。如果我将文本复制并粘贴到TextEdit中,我甚至可以看到我的编辑。如果我输入的足够多,我可以让它抛出一个异常:

代码语言:javascript
复制
NSRunStorage, _NSBlockNumberForIndex(): index (5897) beyond array bounds (5881)

天哪,这看起来像是我可以花大半天时间调试的东西。这里发生了什么事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-16 10:43:04

确保将NSTextStorage连接到NSLayoutManager,如下所示:

代码语言:javascript
复制
[textStorage addLayoutManager:layoutManager];

而不是像这样:

代码语言:javascript
复制
[layoutManager setTextStorage:textStorage];   //BAD

关于-[NSLayoutManager setTextStorage:]的文档说,它永远不应该被直接调用,只应该被覆盖。显然这就是原因所在。希望我为你节省了几个小时的徒劳工作!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4190750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档