我正在尝试在Xamarin.iOS中创建UIAccessibilityCustomAction
。此方法需要name, target, selector
作为参数(如您所见here)。问题出在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
可以同时接受String
或IntPtr
作为参数。由于我不知道IntPtr
是什么以及如何使用它,因此我尝试使用String
参数(如您在上面看到的那样),并且我尝试在this answer之后实现这样的选择器。[Export("Increment")]
private void Increment()
{
//selector implementation
}
问题在于,似乎从未调用过此方法(我试图在调用UIAccessibilityCustomAction时使它记录某些内容,但未显示任何日志),可能是因为它是错误的实现方式。
任何想法?
谢谢
最佳答案
UIAccessibilityCustomAction还有另一个实例化方法,您可以向其中传递自定义操作。
UIAccessibilityCustomAction c = new UIAccessibilityCustomAction("Increment",
(UIAccessibilityCustomAction customAction) =>
{
//selector implementation
});