Xamarin.Forms.Platform.MacOS 시작하기
Problem
Xamarin.Forms.Platform.MacOS가 2.4.0 릴리스에서 Stable이 된 것 같습니다.
htps : //에서 ゔぇぺぺr. 마린. 코 m/레아세 s/아마린-후 rms/아 마린-후 rms-2.4/2.4.0-s타 b/
당연히 IDE 지원은 아직이므로 Cocoa App 프로젝트를 만든 적이없는 분들도 알 수 있도록 만드는 방법을 정리해 둡니다. 그렇다고해도 Xamarin.Forms 프로젝트를 공백에서 만드는 방법과 같습니다.
Solution
프로젝트 만들기
공백 프로젝트를 적당히 만드십시오. 공유하거나 PCL을 사용할 수 있습니다.
곧 코코아 앱 프로젝트를 추가합니다. 프로젝트 이름을 정렬
xxx.Mac
입니다.Xamarin.Forms 설치
어쨌든 NuGet에서 Xamarin.Forms를 설치합니다.
사용자 인터페이스를 포함하는 공유 PCL 프로젝트를 참조하십시오.
부팅 순서 변경
그대로 실행하면
Main.storyboard
가 읽혀 윈도우가 구축되므로 이것을 억제합니다. 먼저 Main.storyboard
를 완전히 제거합니다. ViewController.cs
필요하지 않습니다.Info.plist
를 열고 Main Interface
를 공백으로 만듭니다.AppDelegate.cs
를 열고 using Xamarin.Forms
, using Xamarin.Forms.Platform.MacOS
를 추가하고 NSApplicationDelegate
대신 FormsApplicationDelegate
를 상속합니다.AppDelegate.cs
using AppKit;
using Foundation;
using Xamarin.Forms;
using Xamarin.Forms.Platform.MacOS;
namespace HelloForms.Mac
{
[Register("AppDelegate")]
public class AppDelegate : FormsApplicationDelegate
{
public AppDelegate()
{
}
public override void DidFinishLaunching(NSNotification notification)
{
// Insert code here to initialize your application
}
public override void WillTerminate(NSNotification notification)
{
// Insert code here to tear down your application
}
}
}
FormsApplicationDelegate
는 추상 클래스이므로 요청하는 구현을 추가합니다. NSWindow
형식의 MainWindow
속성을 구현합시다. 또한 AppDelegate
생성자에서 초기화합니다.AppDelegate.cs
public AppDelegate()
{
var style = NSWindowStyle.Closable | NSWindowStyle.Resizable | NSWindowStyle.Titled;
var rect = new CoreGraphics.CGRect(200, 200, 800, 600);
this._window = new NSWindow(rect, style, NSBackingStore.Buffered, false)
{
Title = "Hello, Xamarin Forms!"
};
}
private NSWindow _window;
public override NSWindow MainWindow => this._window;
DidFinishLaunching
메서드로 만든 창이 표시되도록 합니다.AppDelegate.cs
public override void DidFinishLaunching(NSNotification notification)
{
Forms.Init();
LoadApplication(new App());
base.DidFinishLaunching(notification);
}
마지막으로
Main.cs
를 열고 만든 FormsApplicationDelegate
를 응용 프로그램에 등록합니다.Main.cs
using AppKit;
namespace HelloForms.Mac
{
static class MainClass
{
static void Main(string[] args)
{
NSApplication.Init();
// SharedApplication に触れるのは Init の後
NSApplication.SharedApplication.Delegate = new AppDelegate();
NSApplication.Main(args);
}
}
}
실행해보기
작동하지 않을 때
Main.cs
에 등록을 잊어버려 AppDelegate.cs
에서 base.DidFinishLaunching(notification);
를 쓰는 것을 잊어 버렸습니다 의 실행시에 일어나기 쉬운 2점 이외는 단순히 컴파일 에러가 된다고 생각하므로 적절히 대처입니다.
Conclusion
이대로는 메인 메뉴가 거의 기능을 가지지 않는 채이므로, 프로그램에서 만들게 되고
MainMenu.xib
를 만들어 추가한다(see also : 나왔을 때 기사 ) 하는 것이 좋을 것입니다.Cocoa App
이제 프로젝트를 추가하고 Xamarin.Forms의 시작 순서에 올라갈 수 있습니다. .NET Standard화해 보거나 커스텀 렌더러로 macOS의 다채로운 UI 부품을 사용해 보거나 이것을 발판으로 시도해 보세요.
Reference
이 문제에 관하여(Xamarin.Forms.Platform.MacOS 시작하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ailen0ada/items/16af7be2dad598c66009텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)