MonoDevelop 2.8 представил новую модель Xib Designer для поддержки Xcode 4.
Интерфейсный Разработчик, интегрированный в Xcode 4, больше не поддерживает определение классов, выходов и действий в файлах xib. Это означает, что MonoDevelop больше не может использовать модель, в которой он генерировал файлы * .xib.designer.cs из файлов XIB. Вместо этого Интерфейсный Разработчик читает выходы и действия из исходного кода Objective C. Решением MonoDevelop является синхронизация классов C # с заглушками Objective-C.
Когда вы открываете файл xib из MonoDevelop 2.8, MonoDevelop создает временный проект Xcode с заглушками Objective-C, отражающими все классы C #, которые выставлены Objective-C, то есть классы, которые наследуются от NSObject и явно зарегистрированы с помощью [Register("SomeName")]
атрибут. Затем он открывает файл xib в контексте этого проекта, так что Interface Builder увидит все доступные типы, а также выходы и действия над ними. Если выходы и действия добавляются в Xcode 4, используя его систему перетаскивания, они автоматически импортируются обратно в файлы * .designer.cs в MonoDevelop.
Это означает, что файлы конструктора больше не генерируются из какого-либо другого файла, а являются фактическим местом хранения информации. Теперь файлы конструктора связаны с классом, а не с xib.
Эта новая модель имеет несколько плюсов поверх поддержки Xcode 4:
- Теперь возможно, что несколько файлов XIB относятся к одному и тому же классу.
- Проект содержит все ресурсы контента и другие файлы xib, поэтому на них можно легко ссылаться из Interface Builder
- Интерфейсный конструктор будет «видеть» выходы, написанные на частях класса пользователя C # и базовых классах, а не только на частях класса конструктора.
Кроме того, теперь гораздо проще писать розетки вручную. Просто примените атрибут Outlet
к свойству, например
[Outlet ("someView")]
UIView SomeView {get; set; }
К сожалению, новая модель означает, что MonoDevelop больше не интегрируется с созданием торговых точек и действий в Interface Builder 3.2.x. Я рекомендую вам перейти на Xcode 4. Загрузка и редактирование проектов pre-MD 2.8 должны работать нормально.
Пожалуйста, смотрите
http://docs.xamarin.com/ios/tutorials/transitioning_from_xcode_3_to_xcode_4