Показать UIView на Mac - PullRequest
       10

Показать UIView на Mac

3 голосов
/ 21 декабря 2011

Прежде всего, у меня нет большого опыта в программировании на рабочем столе Mac. Я работал только над приложениями для iOS.

Теперь я хотел бы создать настольное приложение, которое поможет мне разрабатывать приложения для iOS. Для этого мне нужно было бы отобразить UIView (загруженный из xib) на рабочем столе, подобно тому, как работает конструктор интерфейса.

Насколько я знаю, настольные приложения используют NSView. Есть ли способ отобразить UIView внутри NSView?

РЕДАКТИРОВАТЬ: Есть ли способ конвертировать UIView в NSView?

EDIT2: есть ли способ написания плагинов / расширений для Interface Builder?

EDIT3: я пытаюсь создать приложение, которое бы упростило разработку определенных приложений для iOS (презентационных приложений). Например, приложение, которое отображает несколько представлений в виде прокрутки, причем каждое представление имеет несколько анимированных графических элементов и несколько кнопок, которые отображают всплывающее окно. Этот вид приложений прост в разработке, но утомителен. Я хотел бы создать инструмент, который помог бы мне быстрее создавать такие приложения.

Спасибо.

Ответы [ 5 ]

7 голосов
/ 21 декабря 2011

UIKit (платформа пользовательского интерфейса iOS, включая UIView) не работает в OS X (ОС Mac для настольных компьютеров). Было предпринято несколько попыток создать сторонний порт UIKit для OS X. Из них Chameleon может быть наиболее продвинутым. Он по-прежнему реализует только около 60% UIKit (согласно странице проекта), но используется в приложениях доставки. Он был разработан создателями Twitterific для портирования их iOS-приложения на OS X, и я считаю, что этот продукт до сих пор остается основой для настольных ПК.

Преобразование UIView в NSView

Нет способа "преобразовать" UIView в NSView. Поскольку вы не можете загрузить UIKit в OS X (или AppKit в iOS), невозможно создать экземпляр UIView, а затем пройтись по иерархии его представления, чтобы создать эквивалентный NSView. Конечно, поскольку семантика UIView отличается от NSView, неясно, может ли быть детерминированное отображение. NSView иерархии основаны на представлении, в то время как UIView иерархии гораздо более широко используют слои CoreAnimation. NSView берет свое начало в NeXT AppKit framework. Есть ряд областей, где AppKit показывает свой возраст. UIKit - это новый старт, «исправляющий» многие из этих унаследованных проблем в AppKit (конечно, представляя свои собственные будущие «устаревшие» проблемы).

может быть в состоянии проанализировать XIB, создавая примерно эквивалентный NSViews, где есть значимое отображение от UIView до NSView. Пользовательский UIViews будет полностью исключен из этой схемы, и не будет никакого способа (легко) подобрать внешний вид без написания пользовательского NSViews для каждого UIView (например, проект Chameleon).

Плагины IB

Interface Builder 3 действительно поддерживает архитектуру плагинов. С Xcode 4 Interface Builder больше не поддерживает сторонние плагины. К сожалению.

Редактировать

К сожалению, я не верю, что Chameleon может загружать представления из XIB, поэтому вам, возможно, придется внести свой вклад в проект, если вы хотите загрузить представления XIB вместо того, чтобы создавать их экземпляры в коде ... как указывает Эшли, вы можете погружение в очень глубокую кроличью нору.

3 голосов
/ 21 декабря 2011

NO. UIView работает только на iPhone. Используйте NSView на Mac.

2 голосов
/ 21 декабря 2011

Учитывая ваше описание приложения, которое вы пытаетесь создать, я мог бы предложить вам написать XIB XML напрямую, а не пытаться манипулировать UIViews в OS X. Вы можете использовать эмулятор для размещения элементов управления, а затем создать сериализованное представление иерархии (положение и т. д.) на устройстве. Вы можете сгенерировать XIB XML из этой сериализации либо на устройстве, либо на рабочем столе после извлечения сериализованной формы обратно из эмулятора.

2 голосов
/ 21 декабря 2011

Нет, нет.Один из них является частью инфраструктуры Какао (Mac), другой - в CocoaTouch (iOS).

Не уверен, что вы подразумеваете под преобразованием UIView в NSView

Чего ты пытаешься достичь?Возможно, есть и другие способы достижения вашей цели.

0 голосов
/ 21 декабря 2011

Возможно, вы захотите проверить http://chameleonproject.org/

...