在我的MonoTouch应用程序中,当用户在NavigationBar中按下UIBarButtonItem时,我试图显示相对于用户触摸屏幕的位置的小UIMenuController。
我之前在Objective C中使用以下代码执行此操作:
UIBarButtonItem* logoutBtn = [[UIBarButtonItem alloc] initWithTitle:@"Logout"
style:UIBarButtonItemStyleBordered target:self
action:@selector(displayLogoutMenu:event:)];
在这里,我可以从传递给我方法的UIEvent中获取印刷机的坐标。
但是MonoTouch试图处理这个问题的方式略有不同。
UIBarButtonItem logoutButton = new UIBarButtonItem("Logout",UIBarButtonItemStyle.Bordered,
delegate(object sender, EventArgs e) {DisplayLogoutMenu(sender,e);});
这里我需要传递EventArgs。到目前为止,我无法从EventArgs中获取坐标(或任何有用的东西)。
无论如何从EventArgs中获取任何有用的信息,还是有另一种方法让我设置我的UIBarButtonItem委托以便它可以传递一个UIEvent?
答案 0 :(得分:4)
您可以传递选择器而不是委托:
UIBarButtonItem barButton = new UIBarButtonItem ("Logout", UIBarButtonItemStyle.Bordered, this, new Selector ("displayLogoutMenu:event:"));
[Export ("displayLogoutMenu:event:")]
void DisplayLogoutMenu (UIBarButtonItem barButton, UIEvent evt)
{
}