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 NSTableView
bulunabilir:
- (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
v
canDragRowsWithIndexes:atPoint
seçicisi iki parametreyle çağrılırset
vepoint
geç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):
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
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
Xamarin.Mac API çevrimiçi belgelerini kullanabilirsiniz.
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.