Sdílet prostřednictvím


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

Přehled

Po většinu času vývoje pomocí Xamarin.Mac si můžete myslet, číst a psát v jazyce C# bez velkého zájmu o podkladová Objective-C rozhraní API. Někdy ale budete muset přečíst dokumentaci k rozhraní API od Společnosti Apple, přeložit odpověď z Stack Overflow na řešení vašeho problému nebo porovnat s existující ukázkou.

Čtení dostatečně Objective-C nebezpečné

Někdy bude nutné přečíst definici Objective-C nebo volání metody a přeložit ji na ekvivalentní metodu jazyka C#. Pojďme se podívat na Objective-C definici funkce a rozdělit části. Tuto metodu (selektor v Objective-C) najdete 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 (nestatické). + znamená, že se jedná o metodu třídy (statické).
  • (BOOL) je návratový typ (bool v jazyce C#).
  • canDragRowsWithIndexes je první část názvu.
  • (NSIndexSet *)rowIndexes je první parametr a jeho typ. První parametr je ve formátu: (Type) paramName
  • atPoint:(NSPoint)mouseDownPoint je druhý parametr a jeho typ. Každý parametr za prvním formátem: selectorPart:(Type) paramName
  • Úplný název tohoto selektoru zpráv je: canDragRowsWithIndexes:atPoint:. : Všimněte si na konci – je důležité.
  • Skutečná vazba jazyka C# Xamarin.Mac je: bool CanDragRows (NSIndexSet rowIndexes, PointF mouseDownPoint)

Toto vyvolání selektoru se dá číst stejným způsobem:

[v canDragRowsWithIndexes:set atPoint:point];
  • Instance v má svůj canDragRowsWithIndexes:atPoint selektor volaný se dvěma parametry set a pointpředaný.
  • V jazyce C# vypadá vyvolání metody takto: v.CanDragRows (set, point);

Vyhledání člena 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 C#. Existují čtyři přístupy, které můžete vyzkoušet (pokračujte v příkladu NSTableView CanDragRows ):

  1. Pomocí seznamu automatického dokončování můžete rychle vyhledat něco se stejným názvem. Protože víme, že se jedná o instanci NSTableView , kterou můžete zadat:

    • NSTableView x;
    • x. [ctrl+mezerník, pokud se seznam nezobrazí).
    • CanDrag [enter]
    • Klikněte pravým tlačítkem myši na metodu, přejděte na deklaraci a otevřete prohlížeč sestavení, kde můžete porovnat Export atribut s daným selektorem.
  2. Prohledejte celou vazbu třídy. Protože víme, že se jedná o instanci NSTableView , kterou můžete zadat:

    • NSTableView x;
    • Klikněte pravým tlačítkem a NSTableViewpřejděte na deklaraci do prohlížeče sestavení.
    • Vyhledání příslušného selektoru
  3. Online dokumentaci k rozhraní API Xamarin.Mac můžete použít.

  4. Miguel zde poskytuje zobrazení rozhraní API Xamarin.Mac "Rosetta Stone", pomocí kterého můžete vyhledat dané rozhraní API. Pokud vaše rozhraní API není specifické pro AppKit nebo macOS, můžete ho tam najít.