2011-04-19 70 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