2012-12-19 36 views
2

在我的MonoTouch应用程序中,当用户在NavigationBar中按下UIBarButtonItem时,我试图显示一个相对于用户触摸屏幕的小UIMenuController。在Monotouch中按下时是否可以找到UIBarButtonItem的位置?

我能够在目标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

您可以通过选择,而不是代表:

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

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