更新未聚焦的NSTextView

时间:2011-04-19 18:57:28

标签: objective-c cocoa nswindow nstextview

这是我previous question的后续内容。

我有一个NSTextView,它正常更新(嗯,实际上有一些错误,它会非常缓慢地绘制,直到你将鼠标移过它.wierd。)如果你在应用程序中。但这里的问题是我使用

    [myWindow setLevel:NSFloatingWindowLevel];

将其设置在其余窗口之上。它是一个小实用程序,您可以使用NSStatusItem隐藏和显示。

愤怒:通知。该应用获取一个字符串,然后我使用[myTextView setString:somestring];将其放在NSTextView上。

如果窗口有焦点,它显然效果很好。但是,如果用户目前正在使用另一个应用程序...如果焦点目前在其他地方,有关如何使其工作的任何想法?我还有一些NSTextFields,无论焦点如何,它们都会更新,但NSTextView会一直空白,直到用户点击窗口为止。实际上,NSStatusItem显示带有

的窗口
    [lyricWindow makeKeyAndOrderFront:nil];

也可以重新绘制NSTextView。如果应用程序被隐藏,用户在另一个应用程序中,则会进行更新,然后用户将应用程序集中在NSTextView将确实为空,直到单击该窗口为止。有没有办法让窗口相信它被点击并具有焦点?有没有办法强制更新或使NSTextView不要求它绘制?

谢谢!

凯文

1 个答案:

答案 0 :(得分:1)

我解决了这个问题!找到一个解决方案需要相当多的工作,因为谷歌显然没有任何相关性,但如果你遇到类似的问题,我修复它的方式就是关闭Interface Builder中NSTextView的Rich Text功能。

我猜测它与性能问题或文本样式的方式有关。它现在很棒!