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#)canDragRowsWithIndexesje první část názvu.(NSIndexSet *)rowIndexesje prvním parametrem a typem jeho typu. První parametr je ve formátu:(Type) paramNameatPoint:(NSPoint)mouseDownPointje 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
vmá svůjcanDragRowsWithIndexes:atPointselektor nazvaný se dvěma parametry,setapointpř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):
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í.)CanDragnapište- Klikněte pravým tlačítkem na metodu, přejděte na deklarace a otevřete prohlížeč sestavení, kde můžete porovnat
Exportatribut s tímto selektorm.
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
Můžete použít online dokumentaci k Xamarin. Mac API .
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.