我是Cocoa的新手,而且我遇到的问题绝对令人抓狂。我正在尝试将一个简单的NSString
写入NSTextView
,由于某种原因它只是不会回应。没有编译器警告,没有运行时错误,只有空白textview
。
我可以使用NSTextView的其他方法,例如selectAll,delete,setSelectedRanges等。它们工作正常,而且从我在Apple的Docs和网络上阅读的所有内容中,setString等方法应该可行。我也试过了:
[[textView textStorage] setAttributedString:aString]
使用NSAttributedString版本的文本,再次没有结果。即使字符串方法完美地工作并返回textView的内容,但由于某种原因,setString等不会。 TextView是可编辑的。在调试器中,我试图写入的字符串的值显示没有问题。
我在'网上到处搜索过,似乎没有其他人遇到这个问题。
谢谢, 乔
答案 0 :(得分:1)
您是否在积极编辑字段时尝试设置字符串值?当文本字段聚焦时,您实际与之交互的控件是其编辑器(NSTextView),因此更改文本字段的存储将不会产生任何影响。
答案 1 :(得分:1)
我已经弄清楚了 - 我不确定这是否就是retainCount的含义,但似乎我在初始化之前将消息发送到textView。我将-setString语句移动到awakeFromNib方法并且它工作正常。我在windowController的-init方法中使用了它。糟糕!
答案 2 :(得分:0)
确保在主线程上调用-setString :. AppKit不是线程安全的。