C# 从代码创建手势识别器

C# 从代码创建手势识别器,c#,ios,cocoa-touch,xamarin.ios,selector,C#,Ios,Cocoa Touch,Xamarin.ios,Selector,我正试图从代码中创建一个手势识别器,但是我无法让它工作,当我执行拖动时,会将一个未识别的选择器发送到instanceLblDrag是IB的UILabel,它是一个插座。如果我使用一个动作作为识别器的构造函数参数,它可以正常工作,但我希望能够使用选择器方法 以下是我所拥有的: public override void ViewDidLoad () { base.ViewDidLoad (); // Perform any additional se

我正试图从代码中创建一个手势识别器,但是我无法让它工作,当我执行拖动时,会将一个
未识别的选择器发送到instance
LblDrag
是IB的UILabel,它是一个插座。如果我使用一个动作作为识别器的构造函数参数,它可以正常工作,但我希望能够使用选择器方法

以下是我所拥有的:

    public override void ViewDidLoad ()
    {
        base.ViewDidLoad ();

        // Perform any additional setup after loading the view, typically from a nib.
        var selector = new MonoTouch.ObjCRuntime.Selector("DragMe");
        var recognizer = new UIPanGestureRecognizer(LblDrag,selector);
        View.AddGestureRecognizer(recognizer);
    }

    [Export("DragMe")]
    protected void DragMe ()
    {
        Console.WriteLine ("Drag");
    }

我试图更改添加识别器的视图,但这两种方法都不起作用。

这很自然-您添加了错误的目标
UILabel
不响应
DragMe
选择器(为什么您认为它会响应?)。您必须将对象添加为实际实现回调方法的手势识别器的目标:

var recognizer = new UIPanGestureRecognizer(this, selector);

@杰夫:没问题。这只是一个合乎逻辑的猜测(我不知道C#,但我很高兴这有帮助。)我找不到任何关于它的文档,无论是C#还是objc,所以我很高兴你的帮助。:)