2011-04-19 37 views
0

这是我的previous question后续行动。更新不专心的NSTextView

我有一个NSTextView,一般更新(好,居然有一些bug,其中直到你通过你的鼠标吧。奇怪。这将吸引非常慢),如果您是在应用程序。但这里的问题是我使用

[myWindow setLevel:NSFloatingWindowLevel]; 

将其设置在其余窗口的顶部。这是一个小实用程序,您可以用NSStatusItem隐藏和显示。

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

如果窗口有焦点,它显然运作良好。但是,如果用户目前正在另一个应用程序...任何想法如何我可以使它的工作,如果焦点目前在别的地方?我也有一些NSTextFields,他们更新很好,不管焦点如何,但NSTextView将变为空白,直到用户单击窗口。实际上,NSStatusItem显示了

[lyricWindow makeKeyAndOrderFront:nil]; 

这doesent重绘NSTextView无论是窗口。如果应用程序处于隐藏状态,则用户在另一个应用程序中,发生更新,然后用户将应用程序的焦点确认为NSTextView,直到单击该窗口。有没有办法让窗户相信它被点击并且有重点?有没有办法强制更新或使NSTextView不需要绘制?

谢谢!

Kevin

回答

1

我修正了这个问题!它需要相当多的工作来寻找解决方案,因为Google显然没有什么相关的,但是如果你遇到类似的问题,我修正它的方法是在Interface Builder中关闭NSTextView的Rich Text功能。

我猜它与性能问题有关,或者与文本的样式有关。它现在很好用!

+0

谢谢,Kevin9764。您的回答导致我发现,对于我的应用程序(需要Rich Text),在Interface Builder中关闭NSTextView的“非连续布局”使其即使在另一个应用程序拥有焦点时也能正确重绘。 – user532477 2016-03-27 22:48:47

+0

啊甜,感谢分享@ user532477! – 2016-03-30 07:02:57