Xamarin.Mac Geliştiricileri için macOS API'leri

Genel bakış

Xamarin.Mac ile geliştirdiğiniz zamanın büyük bir kısmı için, temel API'lerle Objective-C fazla ilgilenmeden C# dilinde düşünebilir, okuyabilir ve yazabilirsiniz. Ancak bazen Apple'ın API belgelerini okumanız, Stack Overflow yanıtını sorununuz için bir çözüme çevirmeniz veya mevcut bir örnekle karşılaştırmanız gerekir.

Tehlikeli olmak için yeterince Objective-C okuma

Bazen bir Objective-C tanımı veya yöntem çağrısını okumak ve bunu eşdeğer C# yöntemine çevirmek gerekir. Şimdi işlev Objective-C tanımına göz atalım ve parçaları ayıralım. Bu yöntem (içindeki Objective-Cbir seçici) üzerinde NSTableViewbulunabilir:

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

Bildirim soldan sağa okunabilir:

  • Ön - ek, bunun bir örnek (statik olmayan) yöntemi olduğu anlamına gelir. + bir sınıf (statik) yöntemi olduğu anlamına gelir
  • (BOOL) dönüş türüdür (C# dilinde bool)
  • canDragRowsWithIndexes adın ilk bölümüdür.
  • (NSIndexSet *)rowIndexes ilk parametredir ve türüne sahip olur. İlk parametre şu biçimdedir: (Type) paramName
  • atPoint:(NSPoint)mouseDownPoint ikinci parametredir ve türüdür. İlk parametreden sonraki her parametre biçimidir: selectorPart:(Type) paramName
  • Bu ileti seçicinin tam adı: canDragRowsWithIndexes:atPoint:. : En sondakine dikkat edin; bu önemlidir.
  • Gerçek Xamarin.Mac C# bağlaması: bool CanDragRows (NSIndexSet rowIndexes, PointF mouseDownPoint)

Bu seçici çağrısı aynı şekilde okunabilir:

[v canDragRowsWithIndexes:set atPoint:point];
  • Örnekte vcanDragRowsWithIndexes:atPoint seçicisi iki parametreyle çağrılır set ve pointgeçirilir.
  • C# dilinde yöntem çağrısı şöyle görünür: v.CanDragRows (set, point);

Belirli bir seçici için C# üyesini bulma

Çağırmanız gereken seçiciyi Objective-C bulduğunuza göre, sonraki adım bunu eşdeğer C# üyesiyle eşlemektir. Deneyebileceğiniz dört yaklaşım vardır (örnekten NSTableView CanDragRows devam ederek):

  1. Aynı ada ait bir şeyi hızla taramak için otomatik tamamlama listesini kullanın. Bunun bir örneği olduğunu bildiğimiz için NSTableView şunu yazabilirsiniz:

    • NSTableView x;
    • x. [Liste görünmüyorsa ctrl+boşluk).
    • CanDrag [enter]
    • yöntemine sağ tıklayın, Assembly Browser'ı açmak için bildirime gidin ve burada özniteliği söz konusu seçiciyle karşılaştırabilirsiniz Export
  2. Tüm sınıf bağlamasını arayın. Bunun bir örneği olduğunu bildiğimiz için NSTableView şunu yazabilirsiniz:

    • NSTableView x;
    • sağ tıklayın NSTableView, Assembly Browser bildirimine gidin
    • Söz konusu seçiciyi arama
  3. Xamarin.Mac API çevrimiçi belgelerini kullanabilirsiniz.

  4. Miguel, burada belirli bir API için arama yapabileceğiniz Xamarin.Mac API'lerinin "Rosetta Taşı" görünümünü sağlar. API'niz AppKit veya macOS'a özgü değilse, burada bulabilirsiniz.