Я хочу знать, возможно ли для Xamarin Studio установить тип автоматически сгенерированного выхода, скажем, myview.designer.cs
в подкласс элемента управления в .xib
.
Например, я создал подкласс NSButton
, чтобы создать некоторый пользовательский интерфейс для кнопок во всем приложении.
У меня есть мой класс, определенный как что-то вроде этого, с использованием атрибута Register
, чтобы он был виден во время выполнения Objective-C:
[Register("AppButton")]
public class AppButton : NSButton
{
...
}
Затем в XCode я установил пользовательский класс AppButton
на моем NSButton
s. Если я открою .xib
в текстовом редакторе, я увижу атрибут customClass
на своих кнопках:
<button id="bxh-qr-g81" ... customClass="AppButton">
Но когда Xamarin Studio прослушивает изменения и обновляет файл конструктора, я всегда получаю выход с типом NSButton
вместо AppButton
.
[Register ("MyView")]
partial class MyView
{
[Outlet]
AppKit.NSButton MyButton { get; set; }
...
}
Я хотел бы, чтобы это был тип моего пользовательского класса:
[Register ("MyView")]
partial class MyView
{
[Outlet]
AppButton MyButton { get; set; }
...
}
Основная причина этого в том, что я хочу установить некоторые свойства в пределах AwakeFromNib
, и немного утомительно приводить их каждый раз. Также было бы хорошо, если бы компилятор выдал ошибку, если тип изменился, а не ошибку времени выполнения, если я не проверяю, что это действительно тип AppButton
.
Если бы я мог установить свойства непосредственно в моем подклассе в XCode, это не было бы проблемой. Но, насколько я могу судить, IBInspectable
или IBDesignable
не поддерживается Xamarin.