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 から有用な情報を取得する方法はありますか、または UIEvent を渡すことができるように UIBarButtonItem デリゲートをセットアップする別の方法はありますか?

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 に答える