Предупреждение об автоматическом размещении в Mac OS X - PullRequest
3 голосов
/ 31 марта 2012

При каждом запуске приложения я получаю предупреждение, которое не до конца понимаю:

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.

(я видел этот связанный вопрос , но предоставленный ответ решает еще одну проблему, и, следовательно, мой вопрос.) Предупреждение появляется, как только я добавляю веб-представление в свое приложение. Что это значит и как мне решить проблему?

Ответы [ 2 ]

3 голосов
/ 01 апреля 2012

Похоже, что - (void)layout реализовано в WebHTMLView. Исходный код WebKit доступен на открытой странице Apple для ознакомления.

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

В документации Auto Layout говорится, что вам нужно реализовать «layout», только если вам нужна пользовательская логика для макетов подпредставлений при использовании Auto Layout. Далее говорится, что вы всегда должны вызывать [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 голосов
/ 09 января 2015

Помимо отмеченного NSTableView с перетаскиванием я обнаружил, что если вы откроете NSFontManager, это всегда будет показывать это сообщение.Не только с Swift, но и с собственной демонстрационной программой Apple CoreTextArcCocoa.Так что это определенно какая-то ошибка в кишечнике Apple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...