2

我是 Cocoa 的新手,我遇到了一个非常令人抓狂的问题。我正在尝试编写一个简单NSStringNSTextView,但由于某种原因它不会响应。没有编译器警告,没有运行时错误,只有一个空白textview.

我可以使用 NSTextView 的其他方法,例如 selectAll、delete、setSelectedRanges 等。它们工作正常,而且从我在 Apple 文档和网上阅读的所有内容中,setString 之类的方法应该可以工作。我也试过:

[[textView textStorage] setAttributedString:aString]

使用文本的 NSAttributedString 版本,同样没有结果。甚至 string 方法也能完美运行并返回 textView 的内容,但由于某种原因 setString 等不会。TextView 是可编辑的。在调试器中,我尝试写入的字符串的值显示没有问题。

我在网上到处搜索,似乎没有其他人遇到这个问题。

谢谢,乔

4

3 回答 3

1

您是否在积极编辑字段时尝试设置字符串值?当一个文本字段被聚焦时,您实际与之交互的控件是它的编辑器(一个 NSTextView),因此对文本字段存储的更改不会有任何影响。

于 2009-08-10T21:21:53.970 回答
1

我已经弄清楚了-我不确定这是否是retainCount的意思,但似乎我在初始化之前将消息发送到了textView。我将我的 -setString 语句移到了 awakeFromNib 方法中,它起作用了。我在 windowController 的 -init 方法中有它。哎呀!

于 2009-08-17T19:23:51.750 回答
0

确保您在主线程上调用 -setString:。AppKit 不是线程安全的。

于 2009-08-11T01:00:58.793 回答