API macOS untuk Pengembang Xamarin.Mac
Gambaran Umum
Untuk sebagian besar waktu Anda berkembang dengan Xamarin.Mac, Anda dapat berpikir, membaca, dan menulis di C# tanpa banyak kekhawatiran dengan API yang mendasar Objective-C . Namun, terkadang Anda harus membaca dokumentasi API dari Apple, menerjemahkan jawaban dari Stack Overflow ke solusi untuk masalah Anda, atau membandingkan dengan sampel yang ada.
Membaca cukup Objective-C berbahaya
Terkadang perlu membaca Objective-C definisi atau panggilan metode dan menerjemahkannya ke metode C# yang setara. Mari kita lihat Objective-C definisi fungsi dan memecah potongan-potongannya. Metode ini (pemilihdi Objective-C) dapat ditemukan pada NSTableView
:
- (BOOL)canDragRowsWithIndexes:(NSIndexSet *)rowIndexes atPoint:(NSPoint)mouseDownPoint
Deklarasi dapat dibaca dari kiri ke kanan:
-
Awalan berarti ini adalah metode instans (non-statis). + berarti itu adalah metode kelas (statis)(BOOL)
adalah jenis pengembalian (bool dalam C#)canDragRowsWithIndexes
adalah bagian pertama dari nama.(NSIndexSet *)rowIndexes
adalah param pertama dan dengan jenisnya. Parameter pertama dalam format:(Type) paramName
atPoint:(NSPoint)mouseDownPoint
adalah param kedua dan jenisnya. Setiap parameter setelah yang pertama adalah format:selectorPart:(Type) paramName
- Nama lengkap pemilih pesan ini adalah:
canDragRowsWithIndexes:atPoint:
. Perhatikan di:
akhir - penting. - Pengikatan Xamarin.Mac C# yang sebenarnya adalah:
bool CanDragRows (NSIndexSet rowIndexes, PointF mouseDownPoint)
Pemanggilan pemilih ini dapat dibaca dengan cara yang sama:
[v canDragRowsWithIndexes:set atPoint:point];
- Instans
v
memiliki pemilihnyacanDragRowsWithIndexes:atPoint
yang dipanggil dengan dua parameter,set
danpoint
, diteruskan. - Di C#, Pemanggilan metode terlihat seperti ini:
v.CanDragRows (set, point);
Menemukan anggota C# untuk pemilih tertentu
Sekarang setelah Anda menemukan pemilih yang Objective-C perlu Anda panggil, langkah selanjutnya adalah memetakannya ke anggota C# yang setara. Ada empat pendekatan yang dapat Anda coba (melanjutkan dengan NSTableView CanDragRows
contoh):
Gunakan daftar penyelesaian otomatis untuk memindai dengan cepat sesuatu dengan nama yang sama. Karena kami tahu itu adalah instans dari
NSTableView
Anda dapat mengetik:NSTableView x;
x.
[ctrl+spasi jika daftar tidak muncul).CanDrag
[masukkan]- Klik kanan metode , buka deklarasi untuk membuka Browser Assembly tempat Anda dapat membandingkan
Export
atribut dengan pemilih yang dimaksud
Cari seluruh pengikatan kelas. Karena kami tahu itu adalah instans dari
NSTableView
Anda dapat mengetik:NSTableView x;
NSTableView
Klik kanan , buka deklarasi ke Browser Rakitan- Cari pemilih yang dimaksud
Anda dapat menggunakan dokumentasi online Xamarin.Mac API .
Miguel menyediakan tampilan "Batu Rosetta" dari API Xamarin.Mac di sini yang dapat Anda cari melalui API tertentu. Jika API Anda tidak spesifik AppKit atau macOS, Anda mungkin menemukannya di sana.