gpt4 book ai didi

cocoa - 对 NSTextView 的更改未到达屏幕

转载 作者:行者123 更新时间:2023-12-03 18:03:31 30 4
gpt4 key购买 nike

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

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

NSRunStorage, _NSBlockNumberForIndex(): index (5897) beyond array bounds (5881)

天哪,这看起来像是我可以花一天的大部分时间来调试的事情。这是怎么回事?

最佳答案

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

[textStorage addLayoutManager:layoutManager];

而不是像这样:

[layoutManager setTextStorage:textStorage];   //BAD

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

关于cocoa - 对 NSTextView 的更改未到达屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4190750/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com