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
).
자동 완성 목록을 사용하여 동일한 이름의 항목을 빠르게 검색합니다. 다음을 입력할 수 있는 인스턴스임을 알고 있으므로 다음을
NSTableView
입력할 수 있습니다.NSTableView x;
x.
[목록이 표시되지 않는 경우 ctrl+공백).CanDrag
[enter]- 메서드를 마우스 오른쪽 단추로 클릭하고 선언으로 이동하여 어셈블리 브라우저를 엽니다. 여기에서 해당 선택기와 특성을 비교할
Export
수 있습니다.
전체 클래스 바인딩을 검색합니다. 다음을 입력할 수 있는 인스턴스임을 알고 있으므로 다음을
NSTableView
입력할 수 있습니다.NSTableView x;
- 마우스 오른쪽 단추를 클릭하고
NSTableView
어셈블리 브라우저로 선언으로 이동 - 문제의 선택기 검색
Xamarin.Mac API 온라인 설명서를 사용할 수 있습니다.
Miguel은 지정된 API를 검색할 수 있는 Xamarin.Mac API 의 "Rosetta Stone" 보기를 제공합니다 . API가 AppKit 또는 macOS와 관련이 없는 경우 해당 API를 찾을 수 있습니다.