单击处理程序 Xamarin
Posted
技术标签:
【中文标题】单击处理程序 Xamarin【英文标题】:Click Handler Xamarin 【发布时间】:2015-08-20 20:46:40 【问题描述】:我正在尝试在我的 Xamarin.ios 应用程序中注册一个单击事件。我不想在这样的方法中注册事件。
http://developer.xamarin.com/recipes/ios/standard_controls/buttons/handle_clicks/
我想从情节提要中注册它们,似乎有这样做的功能。
在我的 ViewController 我有以下代码:
public void ButtonPressed(object sender, EventArgs ea)
UIAlertView error = new UIAlertView("Test Title", "This is a test", null, "Ok", null);
error.Show();
当我运行应用程序并按下按钮时,appDelegate 中出现错误
Foundation.MonoTouchException:抛出 Objective-C 异常。姓名: NSInvalidArgumentException 原因:-[HomeViewController ButtonPressed:]: 无法识别的选择器发送到实例 0x14691650
如何注册点击事件?
【问题讨论】:
【参考方案1】:检查你的 ViewController 的设计器文件,它会有这样的东西:
using Foundation;
using System;
using System.CodeDom.Compiler;
using UIKit;
namespace TEST
[Register ("ViewController")]
partial class ViewController
[Action ("ButtonPressed:")]
[GeneratedCode ("iOS Designer", "1.0")]
partial void ButtonPressed (UIButton sender);
void ReleaseDesignerOutlets ()
所以只需像这样实现该方法:
using System;
using UIKit;
namespace TEST
public partial class ViewController : UIViewController
public ViewController (IntPtr handle) : base (handle)
public override void ViewDidLoad ()
base.ViewDidLoad ();
partial void ButtonPressed (UIButton sender)
Console.Write ("HEY mark this answer as accepted");
【讨论】:
谢谢,明天我回去工作的时候试试这个。 完美。唯一缺少的是由于某种原因我的设计器控制器未包含在项目文件中。一旦我将它添加到我的项目中,它就会编译并运行得很好。【参考方案2】:检查您的 ViewController 的部分类。它应该是这样的:
[Action ("ButtonPressed:")]
[GeneratedCode ("iOS Designer", "1.0")]
partial void ButtonPressed (UIButton sender);
然后将partial
放入你的方法中:
public partial void ButtonPressed(object sender, EventArgs ea)
//...
【讨论】:
以上是关于单击处理程序 Xamarin的主要内容,如果未能解决你的问题,请参考以下文章