Как использовать пользовательский подкласс UIView в редакторе XIB с Monotouch? - PullRequest
6 голосов
/ 19 февраля 2012

Я добавил UIViewController на основе XIB к своему решению и перетащил туда UIViews. Теперь я хочу, чтобы некоторые из представлений были не UIView, а RoundedRectView (https://github.com/Krumelur/RoundedRectView) который наследуется от UIView.

Как этого добиться? Я пытался изменить класс в Интерфейсном Разработчике, но это ничего не сделало. Затем я вручную изменил файл designer.cs, но это привело к ошибке. Затем я попытался изменить поддельный код ObjC, но и это не удалось.

(я использую Xcode 4.2 и MD 2.8.6.4)

1 Ответ

8 голосов
/ 19 февраля 2012

Вашему подклассу представления требуется как минимум две вещи:

  1. Регистрация атрибута

    [Register("MyView")]

    public class MyView : UIView {}

  2. Конструктор IntPtr

    public MyView(IntPtr handle) : base(handle) {}

Затем вы открываете XIB в Интерфейсном Разработчике, добавляете UIView и устанавливаете его Класс в Инспекторе Идентификации на имя, которое вы передали атрибуту Register. Когда вы подключите его к розетке, вы увидите, что он имеет правильный тип.

Outlet with correct type

...