1

我正在尝试从代码创建一个手势识别器,但是我无法让它工作,unrecognised selector sent to instance当我执行拖动时我得到了一个。LblDrag是来自 IB 的 UILabel,它是一个出口。如果我使用 Action 作为识别器的构造函数参数,它可以正常工作,但我希望能够使用选择器方法。

这是我所拥有的:

    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");
    }

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

4

1 回答 1

2

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

var recognizer = new UIPanGestureRecognizer(this, selector);
于 2013-01-14T07:49:54.750 回答