2015-07-13 3 views
0

Я не могу понять, почему мой UIMenuController не появляется на мой взгляд. Когда я долгое время нажимаю кнопку, я вижу, что все инструкции выполнены, но меню не отображается.Почему мой UIMenuController не показан на мой взгляд?

public class MySingleArticleView : UIView 
{ 
    private MyArticleViewController _controller; // MyArticleViewController extends BaseViewController 

    public MySingleArticleView (MyArticleViewController controller, ...) 
    { 
     _controller = controller; 

     // ... init code 
    } 

    void ArticleLongPressed (UILongPressGestureRecognizer gestureRecognizer) 
    { 
     var menuController = UIMenuController.SharedMenuController; 
     var copyMenuItem = new UIMenuItem ("copy", new Selector ("CopyRow")); 
     var pasteMenuItem = new UIMenuItem ("paste", new Selector ("PasteRow")); 
     var location = gestureRecognizer.LocationInView (_controller.View); 
     _controller.BecomeFirstResponder(); 
     menuController.MenuItems = new [] { copyMenuItem, pasteMenuItem }; 
     menuController.SetTargetRect (new CGRect (location.X, location.Y, 0, 0), _controller.View); 
     menuController.SetMenuVisible (true, true); 
    } 

    [Export("CopyRow")] 
    void Row (UIMenuController controller) 
    { 
     // do something 
    } 

    [Export("PasteRow")] 
    void PasteRow (UIMenuController controller) 
    { 
     // do something 
    } 
} 

Что я забыл?

ответ

0

Может быть потому, что вы обеспечиваете высоту и ширину значение, равное 0, если вы установите целевой прямоугольник:

menuController.SetTargetRect (new CGRect (location.X, location.Y, 0, 0), _controller.View); 

Попробуйте придав ему высоту и ширину и посмотреть, если он показывает:

menuController.SetTargetRect (new CGRect (location.X, location.Y, 100, 100), _controller.View); 
+0

Да, я знаю это, но даже указав другие значения, контроллер меню по-прежнему не отображается. Однако после примера на веб-сайте Xamarin было установлено 0 0: http://developer.xamarin.com/api/type/UIKit.UIMenuController/ –

+0

@ D.Morresi Вы нашли решение? Я борюсь с той же проблемой ... – Mariusz

+0

@ Mariusz да, похоже, что мне не понравилось, как я описал команду и функции экспорта ... Я изменил ее в: '[Export (" PasteRow: ")] void PasteRow (UIMenuController) {} 'и' [Export ("CopyRow:")] void CopyRow (UIMenuController) {} '. Затем я изменил часть выше: «var copyMenuItem = новый UIMenuItem (« copy », новый Selector (« CopyRow: »));' var pasteMenuItem = новый UIMenuItem («вставить», новый селектор («PasteRow:»)); ' –

Смежные вопросы