2011-12-21 5 views
2

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

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

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

EDIT: Есть ли способ конвертировать UIView в NSView?

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

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

Спасибо.

+0

Есть причина, вы не можете написать приложение IOS и запустить его на устройстве (или тренажере)? –

+0

Ну, это было бы решением. Но приложение было бы проще использовать с помощью мыши/клавиатуры/большого экрана. – silviupop

+1

запустить его на эмуляторе? –

ответ

2

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

3

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

+0

Это не решает мою проблему ... – silviupop

+2

На самом деле нет решения для вашей проблемы ... – Saurabh

+0

Оба ОС и их рамки разные – Saurabh

1

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

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

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

7

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 иерархии основаны на представлении, тогда как иерархии классов гораздо более распространены, используя слои CoreAnimation. NSView имеет свои корни в инфраструктуре NeXT AppKit. Есть ряд областей, где AppKit показывает свой возраст. UIKit - это новое начало, «исправление» многих из этих устаревших проблем в AppKit (разумеется, введение собственных будущих «унаследованных» проблем).

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

IB плагин

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

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

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

Смежные вопросы