我有NSTextView,我使用
添加文本def puts(val)
storage = @output.textStorage
storage.beginEditing
storage.appendAttributedString(NSAttributedString.alloc.initWithString(val+"\n"))
storage.endEditing
end
这种情况很常见,但在某个时间点它会挂起整个程序(旋转死亡之球)。
我从MacRuby线程调用此方法,所以我认为它与它有关。
答案 0 :(得分:2)
我设置string
NSTextView
的{{1}}属性,名为home_text
home_text.string = "a very loooooong string"
我从未有过“沙滩排球/死亡披萨”。当我不确定我可以依赖默认值时,我会在我想要添加到NSTextView
的字符串上添加一个控件,以避免将其设置为nil值。基本的东西,我知道对不起!
您是否正在主线程或其他地方进行任何I / O操作,而不使用Cocoa最强大的异步API?就像从网上下载东西一样,例如,使用NSURLDownload
代替
Net::HTTP.get('...a url...','..a path..")
或
download_url = NSURl.UrlWithString '...a url...'
download_data = NSMutableStringalloc.initWithContentsOfUrl(download_url,
encoding:...,
error:...)
是同步的。 这可以解释你的问题的随机性,虽然这只是可能的原因之一。