designer.cs 类型子类中的自动生成插座
Autogenerated outlet in designer.cs type of subclass
我想知道 Xamarin Studio 是否可以将 myview.designer.cs
中自动生成的插座类型设置为 .xib
.[=30= 中控件的子类]
例如,我已子classed NSButton
为整个应用程序中的按钮创建一些自定义 UI。
我使用 Register
属性将我的 class 定义为这样的东西,因此它对 Objective-C 运行时可见:
[Register("AppButton")]
public class AppButton : NSButton
{
...
}
在 XCode 内,然后我在 NSButton
上将自定义 class 设置为 AppButton
。如果我在文本编辑器中打开 .xib
,我可以在我的按钮上看到 customClass
属性:
<button id="bxh-qr-g81" ... customClass="AppButton">
但是当 Xamarin Studio 侦听更改并更新设计器文件时,我似乎总是得到类型为 NSButton
而不是 AppButton
的插座。
[Register ("MyView")]
partial class MyView
{
[Outlet]
AppKit.NSButton MyButton { get; set; }
...
}
我希望它成为我的自定义类型 class:
[Register ("MyView")]
partial class MyView
{
[Outlet]
AppButton MyButton { get; set; }
...
}
主要是因为我想在AwakeFromNib
内设置一些属性,每次都强制转换有点繁琐。假设我不检查它确实是 AppButton
.
的类型,如果类型发生变化,编译器抛出错误而不是运行时错误也会很好
如果我可以在 XCode 内直接在我的子 class 上设置属性,这将不是问题。但据我所知,.
我通过以下方式实现了它:
- 创建子class 如下所示
- 首先构建 Xamarin 工作室
- 正在打开 xcode 检查
CustomButton.h
和 CustomButton.m
文件
- 在 xcode 中设置 class 类型,它应该出现在下拉列表中:
再次创建网点。然后应该看起来像这样:
[Outlet]
AppName.iOS.CustomButton customButton { get; set; }
我想你的意思是 UIButton
也不是 NSButton
using System;
using UIKit;
using Foundation;
namespace EdFringe.iOS
{
[Register ("CustomButton")]
public class CustomButton : UIButton
{
public CustomButton ()
{
}
public CustomButton (IntPtr p) : base(p)
{
//this one i think is used to create the obj-c object.
}
public CustomButton (NSCoder coder) : base(coder)
{
// This one i think is used when creating the xib.
}
//Custom stuff here
}
}
我想知道 Xamarin Studio 是否可以将 myview.designer.cs
中自动生成的插座类型设置为 .xib
.[=30= 中控件的子类]
例如,我已子classed NSButton
为整个应用程序中的按钮创建一些自定义 UI。
我使用 Register
属性将我的 class 定义为这样的东西,因此它对 Objective-C 运行时可见:
[Register("AppButton")]
public class AppButton : NSButton
{
...
}
在 XCode 内,然后我在 NSButton
上将自定义 class 设置为 AppButton
。如果我在文本编辑器中打开 .xib
,我可以在我的按钮上看到 customClass
属性:
<button id="bxh-qr-g81" ... customClass="AppButton">
但是当 Xamarin Studio 侦听更改并更新设计器文件时,我似乎总是得到类型为 NSButton
而不是 AppButton
的插座。
[Register ("MyView")]
partial class MyView
{
[Outlet]
AppKit.NSButton MyButton { get; set; }
...
}
我希望它成为我的自定义类型 class:
[Register ("MyView")]
partial class MyView
{
[Outlet]
AppButton MyButton { get; set; }
...
}
主要是因为我想在AwakeFromNib
内设置一些属性,每次都强制转换有点繁琐。假设我不检查它确实是 AppButton
.
如果我可以在 XCode 内直接在我的子 class 上设置属性,这将不是问题。但据我所知,
我通过以下方式实现了它:
- 创建子class 如下所示
- 首先构建 Xamarin 工作室
- 正在打开 xcode 检查
CustomButton.h
和CustomButton.m
文件 - 在 xcode 中设置 class 类型,它应该出现在下拉列表中:
再次创建网点。然后应该看起来像这样:
[Outlet] AppName.iOS.CustomButton customButton { get; set; }
我想你的意思是 UIButton
也不是 NSButton
using System;
using UIKit;
using Foundation;
namespace EdFringe.iOS
{
[Register ("CustomButton")]
public class CustomButton : UIButton
{
public CustomButton ()
{
}
public CustomButton (IntPtr p) : base(p)
{
//this one i think is used to create the obj-c object.
}
public CustomButton (NSCoder coder) : base(coder)
{
// This one i think is used when creating the xib.
}
//Custom stuff here
}
}