Bagikan melalui


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 pemilihnya canDragRowsWithIndexes:atPoint yang dipanggil dengan dua parameter, set dan point, 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):

  1. 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
  2. Cari seluruh pengikatan kelas. Karena kami tahu itu adalah instans dari NSTableView Anda dapat mengetik:

    • NSTableView x;
    • NSTableViewKlik kanan , buka deklarasi ke Browser Rakitan
    • Cari pemilih yang dimaksud
  3. Anda dapat menggunakan dokumentasi online Xamarin.Mac API .

  4. 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.