Xamarin iOS 控件事件创建重复项



我一直在尝试为iOS版Xamarin中的按钮创建一个TouchDown事件。我创建了一个简单的 xib 文件,其中包含 2 个按钮。

在Visual Studio中,我当前正在使用的IDE,我选择了xib中的第一个按钮,在"属性"窗口的"事件"选项卡中,我编写了OnClick并按下了TouchDown事件的"添加"按钮。

这创建了事件并按您的预期工作。在按下按钮时调用代码隐藏中的 OnClick 方法。

因此,对于第二个按钮,我自然而然地再次转到"事件"选项卡,而不是再次编写 OnClick 函数,而是从下拉列表中选择了 OnClick 事件,期望调用相同的函数。

但是,当我现在按下时,我得到了臭名昭著的unrecognized selector sent to instance错误。这是因为在生成的文件中创建了第二个方法。

[Action ("OnKeyPress")]
[GeneratedCode ("iOS Designer", "1.0")]
partial void OnKeyPressed ();
[Action ("OnKeyPress")]
[GeneratedCode ("iOS Designer", "1.0")]
partial void OnKeyPressed (UIKit.UIButton sender);

带有 sender 参数的方法显然是第一个按钮连接到的正确生成方法。第二种方法是无效的,因为它不包含发送者参数。我现在的问题是,如何防止Visual Studio创建损坏的方法?

我现在

的问题是,我怎样才能阻止Visual Studio创建 损坏的方法?

我刚刚在我这边测试了它,在您创建第二个按钮后我发现:

如果select the OnClick event from the dropdown,它将创建第二个方法。

如果writing the OnClick function again而不是从下拉列表中选择 OnClick 事件,则不会生成第二个方法。

因此,您可以选择再次写入函数名称并在代码中创建函数,如下所示:

partial void OnClick(UIKit.UIButton sender) {
}

最新更新