Mac 플랫폼 설정

시작하기 전에 프로젝트를 만들거나 기존 Xamarin.Forms 프로젝트를 사용합니다. Mac용 Visual Studio 사용하여 Mac 앱만 추가할 수 있습니다.

비디오에 macOS 프로젝트 Xamarin.Forms 추가

Mac 앱 추가

다음 지침에 따라 macOS Sierra 및 macOS El Capitan에서 실행되는 Mac 앱을 추가합니다.

  1. Mac용 Visual Studio 기존 Xamarin.Forms 솔루션을 마우스 오른쪽 단추로 클릭하고 새 프로젝트 추가 > 를 선택합니다.

  2. 새 프로젝트 창에서 Mac > 앱 > 코코아 앱을 선택하고 다음을 누릅니.

  3. 앱 이름을 입력하고(필요에 따라 Dock 항목의 다른 이름을 선택) 다음 키를 누릅니.

  4. 구성을 검토하고 Create 키를 누릅니 . 다음 단계는 다음과 같습니다.

    Animated instructions showing how to add a Cocoa app

  5. Mac 프로젝트에서 패키지 > 패키지 추가...를 마우스 오른쪽 단추로 클릭하여 NuGet을 Xamarin.Forms 추가합니다. 또한 동일한 버전의 Xamarin.Forms NuGet 패키지를 사용하도록 다른 프로젝트를 업데이트해야 합니다.

  6. Mac 프로젝트에서 참조를 마우스 오른쪽 단추로 클릭하고 프로젝트에 대한 참조 Xamarin.Forms 를 추가합니다(공유 프로젝트 또는 .NET Standard 라이브러리 프로젝트).

    Add a reference to the Xamarin.Forms shared code project

  7. Main.cs 업데이트하여 다음을 초기화합니다.AppDelegate

    static class MainClass
    {
        static void Main(string[] args)
        {
            NSApplication.Init();
            NSApplication.SharedApplication.Delegate = new AppDelegate(); // add this line
            NSApplication.Main(args);
        }
    }
    
  8. 초기화Xamarin.Forms하고, 창을 만들고, 애플리케이션을 Xamarin.Forms 로드하도록 업데이트 AppDelegate 합니다(적절한 Title설정을 기억). 초기화해야 하는 다른 종속성이 있는 경우 여기에서도 해당 작업을 수행합니다.

    using Xamarin.Forms;
    using Xamarin.Forms.Platform.MacOS;
    // also add a using for the Xamarin.Forms project, if the namespace is different to this file
    ...
    [Register("AppDelegate")]
    public class AppDelegate : FormsApplicationDelegate
    {
        NSWindow window;
        public AppDelegate()
        {
            var style = NSWindowStyle.Closable | NSWindowStyle.Resizable | NSWindowStyle.Titled;
    
            var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768);
            window = new NSWindow(rect, style, NSBackingStore.Buffered, false);
            window.Title = "Xamarin.Forms on Mac!"; // choose your own Title here
            window.TitleVisibility = NSWindowTitleVisibility.Hidden;
        }
    
        public override NSWindow MainWindow
        {
            get { return window; }
        }
    
        public override void DidFinishLaunching(NSNotification notification)
        {
            Forms.Init();
            LoadApplication(new App());
            base.DidFinishLaunching(notification);
        }
    }
    
  9. Main.storyboard를 두 번 클릭하여 Xcode에서 편집합니다. 창을 선택하고 Is Initial Controller 검사box를 검사 않습니다(위의 코드가 창을 만들기 때문임).

    Uncheck the Is Initial Controller checkbox in Xcode

    스토리보드에서 메뉴 시스템을 편집하여 원치 않는 항목을 제거할 수 있습니다.

  10. 마지막으로 필요한 기존 플랫폼 프로젝트에서 로컬 리소스(예: 이미지 파일)를 추가합니다.

  11. 이제 Mac 프로젝트는 macOS에서 코드를 실행 Xamarin.Forms 해야 합니다.

다음 단계

스타일 적용

최근 변경 내용을 적용하면 OnPlatform 이제 여러 플랫폼을 대상으로 지정할 수 있습니다. 여기에는 macOS가 포함됩니다.

<Button.TextColor>
    <OnPlatform x:TypeArguments="Color">
        <On Platform="iOS" Value="White"/>
        <On Platform="macOS" Value="White"/>
        <On Platform="Android" Value="Black"/>
    </OnPlatform>
</Button.TextColor>

다음과 <On Platform="iOS, macOS" ...>같은 플랫폼에서도 두 배로 늘릴 수 있습니다.

창 크기 및 위치

창의 초기 크기와 위치를 다음과 같이 조정할 수 있습니다.AppDelegate

var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768);  // x, y, width, height

알려진 문제

미리 보기이므로 모든 것이 프로덕션 준비가 되지 않을 것으로 예상해야 합니다. 다음은 프로젝트에 macOS를 추가할 때 발생할 수 있는 몇 가지 사항입니다.

모든 NuGets가 macOS에 대해 준비된 것은 아닙니다.

사용하는 일부 라이브러리가 아직 macOS를 지원하지 않는 것을 확인할 수 있습니다. 이 경우 프로젝트의 기본tainer에 요청을 보내 추가해야 합니다. 지원이 있을 때까지 대안을 찾아야 할 수 있습니다.

누락된 Xamarin.Forms 기능

이 미리 보기에서는 모든 Xamarin.Forms 기능이 완료되지 않습니다. 자세한 내용은 GitHub 리포지토리의 Xamarin.Forms 플랫폼 지원 macOS 상태를 참조하세요.