我刚接触Cocoa,我遇到了一个令人抓狂的问题。我正在尝试向NSTextView编写一个简单的NSString,但由于某些原因,它就是不响应。没有编译器警告,没有运行时错误,只有空白的textview。
我可以使用NSTextView的其他方法,如selectAll、delete、setSelectedRanges等。它们工作得很好,从我在苹果文档和网络上读到的所有内容来看,像setString这样的方法应该可以工作。我也尝试过:
[[textView textStorage] setAttributedString:aString]使用文本的NSAttributedString版本,同样没有结果。即使是string方法也能很好地工作并返回textView的内容,但是出于某种原因,setString和类似的东西不能。TextView是可编辑的。在调试器中,我尝试编写的字符串的值显示时没有任何问题。
我已经在网上到处找过了,似乎没有其他人有这个问题。
谢谢,乔
发布于 2009-08-10 21:21:54
您是否正在尝试在字段处于活动状态时设置字符串值?当文本字段被聚焦时,您实际与之交互的控件是它的编辑器(一个NSTextView),因此对文本字段存储的更改不会产生任何影响。
发布于 2009-08-17 19:23:52
我已经弄明白了--我不确定这是否是retainCount的意思,但看起来我是在textView初始化之前向它发送消息的。我将我的-setString语句移到了awakeFromNib方法中,它起作用了。我把它放在windowController的-init方法中。OOps!
发布于 2009-08-11 01:00:59
确保您在主线程上调用-setString:。AppKit不是线程安全的。
https://stackoverflow.com/questions/1256517
复制相似问题