2

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

4

1 回答 1

4

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

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

[Export ("displayLogoutMenu:event:")]
void DisplayLogoutMenu (UIBarButtonItem barButton, UIEvent evt)
{
}
于 2012-12-20T02:05:13.987 回答