2017-09-25 15 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). macOSXamarin.Forms '기반 응용 프로그램 (일반적으로 스토리 보드/XIB를 통해 제공)에는 주 메뉴가 없기 때문에

답변

1

, 당신은 전체 메뉴 체인을 구성해야합니다

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 항목이 클립 보드에 코코아 선택기를 사용하고 있기 때문입니다.

+0

대단히 감사합니다! 이 작업은 새로운 Selector()가 작동하기 전에'Using ObjCRuntime; '을 추가해야만했습니다. 그래도 여전히 고마워. :) –

+0

@ RaymonJansen 문제 없습니다, 행복한'Xamarin.Mac' 코딩 – SushiHangover