在Monotouch中按下时是否可以找到UIBarButtonItem的位置?

时间:2012-12-19 19:42:47

标签: xamarin.ios uibarbuttonitem eventargs

在我的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?

1 个答案:

答案 0 :(得分:4)

您可以传递选择器而不是委托:

UIBarButtonItem barButton = new UIBarButtonItem ("Logout", UIBarButtonItemStyle.Bordered, this, new Selector ("displayLogoutMenu:event:"));

[Export ("displayLogoutMenu:event:")]
void DisplayLogoutMenu (UIBarButtonItem barButton, UIEvent evt)
{
}