Xamarin.Mac 개발자용 macOS API

개요

Xamarin.Mac을 사용하여 개발하는 대부분의 시간 동안 기본 Objective-C API에 대한 관심 없이 C#에서 생각하고 읽고 쓸 수 있습니다. 그러나 Apple에서 API 설명서를 읽거나, Stack Overflow의 답변을 문제에 대한 솔루션으로 변환하거나, 기존 샘플과 비교해야 하는 경우가 있습니다.

위험할 만큼 충분히 Objective-C 읽기

정의 또는 메서드 호출을 Objective-C 읽고 해당하는 C# 메서드로 변환해야 하는 경우도 있습니다. 함수 정의를 살펴보고 Objective-C 조각을 분석해 보겠습니다. 이 메서드(선택기)는 다음에서 Objective-C찾을 수 있습니다.NSTableView

- (BOOL)canDragRowsWithIndexes:(NSIndexSet *)rowIndexes atPoint:(NSPoint)mouseDownPoint

선언은 왼쪽에서 오른쪽으로 읽을 수 있습니다.

  • 접두사는 - 인스턴스(비정적) 메서드임을 의미합니다. + 클래스(정적) 메서드임을 의미합니다.
  • (BOOL) 반환 형식(C#의 bool)입니다.
  • canDragRowsWithIndexes 는 이름의 첫 번째 부분입니다.
  • (NSIndexSet *)rowIndexes 는 첫 번째 매개 변수이며 형식입니다. 첫 번째 매개 변수의 형식은 다음과 같습니다. (Type) paramName
  • atPoint:(NSPoint)mouseDownPoint 는 두 번째 매개 변수 및 해당 형식입니다. 첫 번째 매개 변수 뒤의 모든 매개 변수는 형식입니다. selectorPart:(Type) paramName
  • 이 메시지 선택기의 전체 이름은 다음과 canDragRowsWithIndexes:atPoint:같습니다. 마지막에 유의 : 하십시오 - 그것은 중요합니다.
  • 실제 Xamarin.Mac C# 바인딩은 다음과 같습니다. bool CanDragRows (NSIndexSet rowIndexes, PointF mouseDownPoint)

이 선택기 호출은 다음과 같은 방식으로 읽을 수 있습니다.

[v canDragRowsWithIndexes:set atPoint:point];
  • 인스턴스 v 에는 canDragRowsWithIndexes:atPoint 두 개의 매개 변수 set 를 사용하여 해당 선택기가 호출되고 point전달됩니다.
  • C#에서 메서드 호출은 다음과 같습니다. v.CanDragRows (set, point);

지정된 선택기에서 C# 멤버 찾기

호출해야 하는 선택기를 찾았 Objective-C 으므로 다음 단계는 해당 C# 멤버에 매핑하는 것입니다. 다음 네 가지 방법을 시도해 볼 수 있습니다(예제를 계속 진행 NSTableView CanDragRows ).

  1. 자동 완성 목록을 사용하여 동일한 이름의 항목을 빠르게 검색합니다. 다음을 입력할 수 있는 인스턴스임을 알고 있으므로 다음을 NSTableView 입력할 수 있습니다.

    • NSTableView x;
    • x. [목록이 표시되지 않는 경우 ctrl+공백).
    • CanDrag [enter]
    • 메서드를 마우스 오른쪽 단추로 클릭하고 선언으로 이동하여 어셈블리 브라우저를 엽니다. 여기에서 해당 선택기와 특성을 비교할 Export 수 있습니다.
  2. 전체 클래스 바인딩을 검색합니다. 다음을 입력할 수 있는 인스턴스임을 알고 있으므로 다음을 NSTableView 입력할 수 있습니다.

    • NSTableView x;
    • 마우스 오른쪽 단추를 클릭하고 NSTableView어셈블리 브라우저로 선언으로 이동
    • 문제의 선택기 검색
  3. Xamarin.Mac API 온라인 설명서를 사용할 수 있습니다.

  4. Miguel은 지정된 API를 검색할 수 있는 Xamarin.Mac API 의 "Rosetta Stone" 보기를 제공합니다 . API가 AppKit 또는 macOS와 관련이 없는 경우 해당 API를 찾을 수 있습니다.