Я создаю приложение для Mac OS на C # с помощью Xamarin.Mac. Я хотел бы заполнить раскрывающийся список (NSPopUpButton) элементами, в которых хранится больше информации, чем просто их заголовок и индекс. В частности, хотелось бы иметь ...

1
Nat Webb 18 Дек 2020 в 18:02

1 ответ

Лучший ответ

Добавьте свой подкласс NSMenuItem с помощью метода NSPopUpButton.Menu.AddItem.

Пример NSMenuItem:

public class MyNSMenuItem : NSMenuItem
{
    public string SomeCustomProperty { get; set; }
    
    ~~~~
    // add all the .ctors w/ base calls....
}

Пример использования:

var popUpButton = new NSPopUpButton()
{
    Frame = new CGRect(100, 100, 100, 100),
    Title = "A pop button",
};
var menuItem = new MyNSMenuItem()
{
    Title = "StackOverflow",
    SomeCustomProperty = "SomeInstance",
};
menuItem.Activated += (sender, e) =>
{
    Console.WriteLine((sender as MyNSMenuItem).SomeCustomProperty);
};
popUpButton.Menu.AddItem(menuItem);
this.View.AddSubview(popUpButton);
3
SushiHangover 19 Дек 2020 в 23:47