Можно ли найти местоположение UIBarButtonItem при нажатии в Monotouch?

В моем приложении MonoTouch, когда пользователь нажимает UIBarButtonItem в NavigationBar, я пытаюсь отобразить небольшой 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 ответ

Решение

Вы можете передать селектор вместо делегата:

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

[Export ("displayLogoutMenu:event:")]
void DisplayLogoutMenu (UIBarButtonItem barButton, UIEvent evt)
{
}
Другие вопросы по тегам