如何在Monotouch中使用iOS RespondsToSelector

本文关键字:iOS RespondsToSelector Monotouch | 更新日期: 2023-09-27 18:24:01

我正在努力理解在Monotouch中使用RespondsToSelector的模式。例如,以下翻译不起作用。(LayoutMargins用于在iOS 8中设置单元格缩进)

目标C:

if ([tableView respondsToSelector:@selector(setLayoutMargins:)]) {
    [tableView setLayoutMargins:UIEdgeInsetsZero];
}

至单触式

if (this.TableView.RespondsToSelector(new Selector("setLayoutMargins")))
    this.TableView.LayoutMargins = UIEdgeInsets.Zero;

我敢肯定,我只是在命名"setLayoutMargins"时遇到了问题。我也试过"LayoutMargins"。有人能帮我1)修复这个语句吗?2)帮助我理解命名约定/模式吗?

谢谢!

如何在Monotouch中使用iOS RespondsToSelector

我很确定我只是在命名"setLayoutMargins"时遇到了问题

选择器在ObjC中以:结束,并且在C#中也需要有in,即:

if (this.TableView.RespondsToSelector(new Selector("setLayoutMargins:")))

注意:额外的:意味着在调用选择器时需要一个参数。这就是为什么set*有它,而getter没有。

检查选择器的另一种方法是使用版本检查。