2017-09-25 18 views
3

MacOSのC#アプリケーションに関する質問がありました。(方法)NSMenuItemを使用して<editor>からクリップボードにテキストをコピーする

I持って(MainClassで)次のコード:

<Editor x:Name="editField" 
      Text="Some Text" 
      Margin="0" 
      Grid.Row="1" 
      Grid.Column="1"/> 

だから、私の質問は次のとおりです:

NSMenuItem copyMenuItem = new NSMenuItem(title: "Copy", charCode: "c", handler: delegate 
{ 
    //Has to be code  
}); 

そしてPage.xamlをして、私は、エディタのタグを持っている

どうすれば同じコードを使用しながら、同じソリューションを使用することができますか?エディタ内のテキストを(クリップボードに)コピーしますか? (NSMenuItem)。

答えて

1

macOSXamarin.Forms "ベースのアプリケーションには、メインメニュー(通常、ストーリーボード/ XIBを介して提供)、あなたはメニュー全体のチェーンを構築する必要がありませんので:あなたのAppDelegate(コンストラクタまたはDidFinishLaunchingこと

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; 

場所を)あなたは、クリップボードにココアセレクタを使用しているNSMenuItemアイテムがあるため、あなたのアプリケーション全体に対してカット/コピー/ペーストを行います。

+0

ありがとうございます!これはうまくいきます。新しいSelector()が動作する前に、 'Using ObjCRuntime;'を追加しなければなりませんでした。しかし、まだありがとう:) –

+0

@ RaymonJansen問題はない、ハッピー 'Xamarin.Mac'コーディング – SushiHangover

関連する問題