2012-03-31 83 views
3

我得到一個警告,我不完全理解我每次運行我的應用程序:自動佈局警告在Mac OS X

Layout still needs update after calling -[WebHTMLView layout]. WebHTMLView or one of its superclasses may have overridden -layout without calling super. Or, something may have dirtied layout in the middle of updating it. Both are programming errors in Cocoa Autolayout. The former is pretty likely to arise if some pre-Cocoa Autolayout class had a method called layout, but it should be fixed.

(我已經看到了這個related question,但所提供的答案來解決一些其他問題,因此我的問題。)一旦我添加一個Web視圖到我的應用程序,就會出現警告。這是什麼意思,我該如何解決這個問題?

回答

3

看起來- (void)layoutWebHTMLView執行。 WebKit的源代碼可在Apple的開源頁面上查看。

http://www.opensource.apple.com/source/WebKit/WebKit-7534.53.11/mac/WebView/WebHTMLView.mm

在自動佈局文件,它規定你只需要執行「佈局」,如果你需要自定義邏輯佈局子視圖,而使用自動佈局。它繼續說你應該在你的自定義實現中始終調用[super layout]。這不會發生在WebHTMLView

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html%23//apple_ref/occ/instm/NSView/layout

此消息可以可能被安全地忽略爲您的項目。同樣的事情發生在一個空白的新項目上。

+0

這裏有雷達物品嗎? – adib 2012-07-01 10:57:01

+1

我在拖拽一個項目的時候用一個簡單的NSTableView獲得了它。我沒有實現任何佈局方法。所以這漂亮的氣味就像蘋果的Swifty Cocoa實現中的一個bug。雷達?我猜不會。我仍然有超過半打打開的編譯器bug報告,甚至沒有被Apple觸及:-( – 2014-12-29 20:49:41

0

除了記下的NSTableView拖動我發現,如果您打開NSFontManager這將始終顯示此消息。不僅使用Swift,而且使用Apple自己的演示程序CoreTextArcCocoa。所以這絕對是蘋果公司內心的一個缺陷。

+0

To:Thomas,可能它來自NSFontPanel而不是NSFontManager。 – 2015-04-28 22:48:00

+0

@JiulongZhao當然,它是從字體面板彈出編輯菜單。 – 2015-04-29 07:54:53