c# - 从代码创建手势识别器

标签 c# ios cocoa-touch xamarin.ios selector

我正在尝试从代码创建一个手势识别器,但是我无法让它工作,当我执行拖动时,我得到了一个无法识别的选择器发送到实例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");
    }

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

最佳答案

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

var recognizer = new UIPanGestureRecognizer(this, selector);

关于c# - 从代码创建手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314683/

相关文章:

macos - 以编程方式选择 NSToolBarItem

iphone - 无法检测 iPhone 上的纵向方向

c# - 如何仅允许特定用户访问 IIS 上托管的 WCF Web 服务?

c# - 令人困惑的线程行为

ios - 无法在 OS X El Capitan 中使用命令 genstrings

ios - 使用 JSON 中的 NSData 上传多部分图像(HTTP 正文)

c# - ReIndex Number List 但按顺序保留重复项 C#

c# - 转换 bool 值?在 View 中 bool

ios - 如何将 CVPixelBuffer 转换为 UIImage?

cocoa - +[NSUserDefaults standardUserDefaults] 是否在应用程序之间共享?