Xamarin.iOS中的iOS选择器

问题描述 投票:0回答:1

我正试图创建一个 UIAccessibilityCustomAction 在Xamarin.iOS.Net中。本方法需要 name, target, selector 作为参数(你可以看到 此处). 问题在于 selector 参数。

在Xcode(使用Swift)中,我可以很容易地实现这样的功能。

let up = UIAccessibilityCustomAction(name: "Increment", target: self, selector: #selector(increment))


@objc private func increment() -> Bool{
    //selector implementation
}

在Xamarin(使用C#)中,我试过这样做。

UIAccessibilityCustomAction up = new UIAccessibilityCustomAction(name: "Increment", target: iospage, selector: new Selector("Increment"));

而且据说 Selector 既可 StringIntPtr 作为论据。由于我不知道什么是 IntPtr 是什么,我应该如何使用它,我试着使用了 String 参数,如上图所示,我试着实现了这样的选择器,下面是 本回答.

[Export("Increment")]
    private void Increment()
    {
        //selector implementation
    }

问题是这个方法好像从来没有被调用过(我试着让它在调用UIAccessibilityCustomAction的时候记录一些东西,但是没有显示任何日志),可能是因为实现它的方式不对。

有什么好办法吗?

有什么办法吗?

ios xamarin xamarin.ios accessibility selector
1个回答
2
投票

UIAccessibilityCustomAction有另一个实例化方法,你可以把一个自定义的动作传入它。

 UIAccessibilityCustomAction c = new UIAccessibilityCustomAction("Increment", 
        (UIAccessibilityCustomAction customAction) =>
        {

               //selector implementation
        });

1
投票

感谢@Cole Xia - MSFT的提示,我找到了另一个实例化方法,似乎更容易处理,只使用 name, actionHandler所以,如果没有 targetselector. actionHandler 更容易使用,因为它只是一个需要返回类型为bool的函数。

我的实现。

UIAccessibilityCustomAction up = new UIAccessibilityCustomAction("Increment", actionHandler: Increment);

private bool Increment(UIAccessibilityCustomAction customAction)
{
    //implementation of the handler
}
© www.soinside.com 2019 - 2024. All rights reserved.