Rozhraní API macOS pro vývojáře Xamarin. Mac

Přehled

Pro spoustu času vývoje pomocí Xamarin. Mac si můžete představit, číst a psát v jazyce C#, aniž byste se museli zabývat základními Objective-C rozhraními API. Někdy ale budete muset přečíst dokumentaci k rozhraní API od Applu, přeložit odpověď z Stack Overflow na řešení vašeho problému nebo porovnat s existující ukázkou.

Dostatečně čitelný Objective-C , aby bylo nebezpečné

V některých případech bude nutné načíst Objective-C definici nebo volání metody a převést je na ekvivalentní metodu jazyka C#. Pojďme se podívat na Objective-C definici funkce a rozdělit části. Tato metoda ( selektor v rámci ) se dá najít na NSTableView :

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

Deklaraci lze přečíst zleva doprava:

  • -Předpona znamená, že se jedná o metodu instance (nestatickou). + znamená, že se jedná o třídu (statickou) metodu
  • (BOOL) je návratový typ (bool v jazyce C#)
  • canDragRowsWithIndexes je první část názvu.
  • (NSIndexSet *)rowIndexes je prvním parametrem a typem jeho typu. První parametr je ve formátu: (Type) paramName
  • atPoint:(NSPoint)mouseDownPoint je druhým parametrem a jeho typem. Každý parametr po prvním formátu je: selectorPart:(Type) paramName
  • Úplný název tohoto selektoru zprávy je: canDragRowsWithIndexes:atPoint: . Všimněte si, že na : konci je důležité.
  • Skutečná vazba Xamarin. Mac jazyka C#: bool CanDragRows (NSIndexSet rowIndexes, PointF mouseDownPoint)

Volání tohoto selektoru lze číst stejným způsobem:

[v canDragRowsWithIndexes:set atPoint:point];
  • Instance v má svůj canDragRowsWithIndexes:atPoint selektor nazvaný se dvěma parametry, set a point předáno.
  • V jazyce C# bude volání metody vypadat takto: v.CanDragRows (set, point);

Hledání členu jazyka C# pro daný selektor

Teď, když jste našli Objective-C selektor, který potřebujete vyvolat, je dalším krokem mapování na ekvivalentního člena jazyka C#. Můžete si vyzkoušet čtyři přístupy (v NSTableView CanDragRows příkladu pokračuje):

  1. Seznam automatického dokončování můžete použít k rychlému vyhledání nějakého jména. Protože ví, že se jedná o instanci NSTableView , můžete zadat:

    • NSTableView x;
    • x. [CTRL + MEZERNÍK, pokud se seznam nezobrazí.)
    • CanDrag napište
    • Klikněte pravým tlačítkem na metodu, přejděte na deklarace a otevřete prohlížeč sestavení, kde můžete porovnat Export atribut s tímto selektorm.
  2. Prohledejte celou vazbu třídy. Protože ví, že se jedná o instanci NSTableView , můžete zadat:

    • NSTableView x;
    • Kliknutí pravým tlačítkem NSTableView , přejít k deklaraci do prohlížeče sestavení
    • Vyhledat daný selektor
  3. Můžete použít online dokumentaci k Xamarin. Mac API .

  4. Miguel poskytuje zobrazení "Rosettaho kamene" rozhraní api Xamarin. Mac, které tady můžete vyhledat pro dané rozhraní api. Pokud vaše rozhraní API není specifické pro Appkitu nebo macOS, může se tam najít.