c# - Xamarin iOS 控制事件创建重复项

标签 c# ios xamarin

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

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

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

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

但是,当我按 now 时,我收到臭名昭著的 无法识别的选择器发送到实例 错误。这是因为在生成的文件中,创建了第二个方法。

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

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

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

最佳答案

My question now is, how can I prevent Visual Studio from creating the corrupted method?

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

如果您从下拉列表中选择 OnClick 事件,它将创建第二个方法。

如果您再次编写 OnClick 函数而不是从下拉列表中选择 OnClick 事件,它将不会生成第二个方法。

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

partial void OnClick(UIKit.UIButton sender) {

}

关于c# - Xamarin iOS 控制事件创建重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56328677/

相关文章:

c# - 将文件一次加载到 ASP.NET 应用程序中

c# - 在 AZURE 或本地部署 .net core 3.0

ios:非空数组上的索引越界错误

android - Visual Studio Android 模拟器不安装配置文件

c# - 每个主要模拟框架在现实世界中的优缺点是什么?

C# 从字符中删除重音?

ios - 创建检查将产生错误的按钮(swift3)

ios - 核心数据映射模型无法使用正确的哈希值

c# - 使用 Moq 验证调用基类中的非虚拟方法

iOS 9.0.2 Web View Twitter API 中的问题