我对MacOS的C#应用程序有疑问。
我有以下代码(在MainClass中):
NSMenuItem copyMenuItem = new NSMenuItem(title: "Copy", charCode: "c", handler: delegate
{
//Has to be code
});
在page.xaml中我有一个编辑器标签:
<Editor x:Name="editField"
Text="Some Text"
Margin="0"
Grid.Row="1"
Grid.Column="1"/>
所以,我的问题是:
我怎样才能使用相同的解决方案,使用代码的第一部分将文本(到剪贴板)复制到编辑器中? (NSMenuItem)。
答案 0 :(得分:1)
由于基于macOS
Xamarin.Forms
的应用程序没有主菜单(通常通过Storyboard / xib提供),您需要构建整个菜单链:
var mainMenu = new NSMenu();
var appMenuItem = new NSMenuItem();
mainMenu.AddItem(appMenuItem);
var editMenuItem = new NSMenuItem();
mainMenu.AddItem(editMenuItem);
var editSubMenu = new NSMenu("Edit");
editSubMenu.SetSubmenu(editSubMenu, editMenuItem);
var cutMenuItem = new NSMenuItem("Cut", new Selector("cut:"), "x");
editSubMenu.AddItem(cutMenuItem);
var copyMenuItem = new NSMenuItem("Copy", new Selector("copy:"), "c");
editSubMenu.AddItem(copyMenuItem);
var pasteMenuItem = new NSMenuItem("Paste", new Selector("paste:"), "v");
editSubMenu.AddItem(pasteMenuItem);
NSApplication.SharedApplication.MainMenu = mainMenu;
将其放在AppDelegate
(构造函数或DidFinishLaunching
)中,您将对整个应用进行剪切/复制/粘贴,因为NSMenuItem
项目正在使用剪贴板的Cocoa选择器