如何在 Xamarin.iOS 中使用 @selector

Aka*_*ika 3 xamarin.ios xamarin

现在我想在我的 xamarin.iOS 项目中实现一些功能。我找到了解决方案,但在 Objective-C 中实现。它使用了关键字@selector(...)。我发现这个问题是引用。但是,正如@theB 所说,使用动态类型。当然这意味着类型安全只在运行时强制执行,你可能会招致一些性能损失。所以有没有更好的方法来实现它?欢迎任何建议。谢谢?

Luc*_*ang 6

@selector在 xamarin.iOS 中可用。它包含在命名空间中ObjCRuntime。例如,您可以为一个绑定单击操作UIButton。就像在 Objective-C 中一样。

using ObjCRuntime;
. . .

UIButton button = new UIButton()
  {
    //. . .
  };
button.AddTarget(this, new Selector("ButtonClickAction:"),UIControlEvent.TouchUpInside);


[Export("ButtonClickAction:")]  
public void ButtonClickAction(UIButton sender)
{
  // . . .
}
Run Code Online (Sandbox Code Playgroud)

[导出("ButtonClickAction:")]

重要的是。成员带有[Export],使 Objective-C 可以访问它们。有关更多详细信息,您可以参考文档