NSTextView不会响应setString

时间:2009-08-10 18:43:13

标签: objective-c cocoa xcode nstextview

我是Cocoa的新手,而且我遇到的问题绝对令人抓狂。我正在尝试将一个简单的NSString写入NSTextView,由于某种原因它只是不会回应。没有编译器警告,没有运行时错误,只有空白textview

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

[[textView textStorage] setAttributedString:aString]

使用NSAttributedString版本的文本,再次没有结果。即使字符串方法完美地工作并返回textView的内容,但由于某种原因,setString等不会。 TextView是可编辑的。在调试器中,我试图写入的字符串的值显示没有问题。

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

谢谢, 乔

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我已经弄清楚了 - 我不确定这是否就是retainCount的含义,但似乎我在初始化之前将消息发送到textView。我将-setString语句移动到awakeFromNib方法并且它工作正常。我在windowController的-init方法中使用了它。糟糕!

答案 2 :(得分:0)

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