如何在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)帮助我理解命名约定/模式吗?
谢谢!
我很确定我只是在命名"setLayoutMargins"时遇到了问题
选择器在ObjC中以:
结束,并且在C#中也需要有in,即:
if (this.TableView.RespondsToSelector(new Selector("setLayoutMargins:")))
注意:额外的:
意味着在调用选择器时需要一个参数。这就是为什么set*
有它,而getter没有。
检查选择器的另一种方法是使用版本检查。