Cocoa на OS X в Xcode: почему, если в окно добавить WebView, то при запуске оно станет пустым, вообще без контролов?
Создал проект. Xcode, Cocoa, Swift (не думаю, что ЯП имеет значение)
Кинул Button и Label.
Запустил. Кнопка и надпись на месте.
Кинул WebView.
Запустил. Пусто - ни кнопки, ни надписи, ни WebView. Подождал немного, "потягал" окно туда-сюда (вдруг проблемы с перерисовкой). Все равно пусто.
Убрал WebView.
Запустил. Кнопка и надпись опять на месте.
Что это может быть?
Работал с разными "движками" браузеров, на разных ОС, платформах, и никогда ничего подобного не встречал. И Google тоже не встречал.
По опыту с WinForms мог бы предположить, что по умолчанию WebView заполняет все окно и закрывает контролы.
Но, во-первых, я пробовал Hidden, и ничего не изменилось.
Во-вторых, в Interface Builder видно, что WebView имеет "фиксированные" координаты, а не заполняет весь контейнер. В-третьих, как вообще хваленые дизайнеры Apple могли допустить, что дизайн окна в Interface Builder до такой степени отличается от его вида при запуске, и это в приложении уровня Hello World? Это и есть то, что я должен захотеть лизнуть? :) А если я лизну, WebView появится? Это у них механизм перерисовки так работает? Или это как-то связано с безопасностью (серфинга через WebView), по тому же принципу, что и сканирование отпечатков пальцев?
В четвертых советую покурить книжку. Ибо в них написано что да как делать, а то что вы там себе думали и как вы бы хотели что бы было, мало кого волнует.
Ну, тогда скажите название книги, которая, по-вашему, содержит ответ на вопрос. Странно, что вы этого сразу же не сделали.
"то что вы там себе думали и как вы бы хотели что бы было, мало кого волнует."
Вообще-то я работал с WebKit на Windows и Android. WebKit известен как кроссплатформенный "движок". Почему же на OS X он ведет себя иначе, чем на Windows и Android? Какое он вообще имеет отношение к другим контролам в окне?
Это явно недочет Apple, я здесь явно не виноват, нечего на меня "наезжать", и я надеюсь, что вы способны мне помочь и вам есть что посоветовать (то есть конкретную книгу, содержащую ответ на вопрос), а не просто высказать свое мнение о том, как мне, по-вашему, надо обучаться.
Вообще совет правильный, правда есть проблема, легко нарваться на туториалы, которые учат сходу отключать Auto Layout и вручную выставлять все отступы, что делать совершенно не нужно, так как Interface Builder сам справляется с этой задачей
В двух словах:
После того как расставлены все нужные формы, кнопки и т.д. нужно нажать: All Views in View Controller -> Add Missing Constraints и/или расставить/подправить их вручную, если автоматический способ чем-то не устроил
Вообще в этом официальном разделе Interface Builder потыкайтесь, много картинок, сразу разъясняющие что и как работает, самые ходовые вопросы там разобраны
Shannon: Проблему я уже решил, там фреймворк надо было подключить, я этого не сделал, из-за этого не загружался весь контроллер, Interface Builder тут ни при чем, это просто WYSIWYG-редактор для файла storyboard.