Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
C# aracılığıyla kullanıma sunulan Apple API'leri boyunca, bazı deyimler ve desenler tekrar tekrar ortaya çıkar. Xamarin.iOS ile programlama deneyimine sahipseniz, bunlar tanıdık görünebilir. Belgeler genellikle bu desenlere ve deyimlere tekrar tekrar başvurur, bu nedenle bunları iyice anlamak, bulduğunuz belgeleri anlamanıza yardımcı olur.
MVC - Model Görünüm Denetleyicisi
Model Görünüm Denetleyicisi veya kısaca MVC, Cocoa'da bulunan çok yaygın bir desendir. Ayrıntılı bir tartışma bu belgenin kapsamı dışındadır, ancak kısaca uygulamanızı bileşenler halinde yapılandırmanın bir yoludur:
- Model nesneleri, görüntülenen ve işlenen temel verileri temsil eder (Adres defterindeki adresler gibi)
- Görüntüleme nesneleri, belirli bir nesnenin çizimini ekranda işler ve kullanıcı etkileşimini işler (Ekranda adresi gösteren metin alanı)
- Denetleyici nesneleri Model ve Görünüm arasındaki etkileşimi işler. Görünüm'ü güncelleştirmek için Model değişikliklerini "yukarı" iletir ve kullanıcılar kullanıcı arabiriminde değişiklik yaptıklarında Görünüm'den "aşağı" değişiklikleri iletirler.
WPF gibi diğer kitaplıklardan MVVM (Model Görünümü ViewModel) hakkında bilgi sahibiyseniz, Denetleyici ViewModel'e benzer şekilde davranır ancak genellikle belirli kullanıcı arabirimi öğelerine daha yakından bağlıdır.
Daha fazla bilgiyi şurada bulabilirsiniz:
Veri kaynağı / temsilci / alt sınıflama
Cocoa'daki bir diğer yaygın desen de kullanıcı arabirimi öğelerine veri sağlama ve kullanıcı etkileşimlerine tepki verme ile ilgilidir. NSTableView Örnek olarak kullanarak her satır için verileri, bu satırı temsil eden bazı kullanıcı arabirimi öğeleri kümesini, kullanıcı etkileşimlerine tepki vermek için bazı davranışlar kümesini ve büyük olasılıkla bir miktar özelleştirmeyi sağlamanız gerekir. Veri kaynağı ve temsilci desenleri, çoğu durumu alt sınıfa NSTableView başvurmak zorunda kalmadan işlemenize olanak sağlar.
özelliğine
DataSource, tabloyu verilerle (veGetObjectValuearacılığıylaGetRowCount) doldurmak için çağrılan özel bir alt sınıfınNSTableViewDataSourcebir örneğine atanır.özelliğine
Delegate, belirli bir model nesnesi için görünüm sağlayan (aracılığıylaGetViewForItem) ve kullanıcı arabirimi etkileşimlerini (DidClickTableColumnaracılığıyla ,MouseDownInHeaderOfTableColumnvb.) işleyen özel bir alt sınıfınNSTableViewDelegatebir örneğine atanır.
Bazı durumlarda, bir denetimi temsilcide veya veri kaynağında verilen kancaların ötesinde bir şekilde özelleştirmek isteyeceksiniz ve görünümü doğrudan alt sınıfa alabilirsiniz. Ancak, çoğu durumda varsayılan davranışı geçersiz kılmanız, bu davranışın tümünü kendiniz işlemenizi gerektirir (seçim davranışını özelleştirmek, tüm seçim davranışlarını kendiniz uygulamanızı gerektirebilir).
Xamarin.iOS'ta, gibi UITableView bazı API'ler hem temsilciyi hem de veri kaynağını (UITableViewSource) uygulayan bir özellik ile genişletilmiştir. Bu, tek bir C# sınıfının yalnızca bir temel sınıfa sahip olabileceği ve protokolleri temel sınıflar aracılığıyla yaptığımız yaygın sınırlamalara geçici bir çözüm getirir.
Xamarin.Mac uygulamasında tablo VIews ile çalışma hakkında daha fazla bilgi için lütfen Tablo Görünümü belgelerimize bakın.
Protokoller
içindeki Objective-C protokoller C# içindeki arabirimlerle karşılaştırılabilir ve çoğu durumda benzer durumlarda kullanılır. Örneğin NSTableView yukarıdaki örnekte hem temsilci hem de veri kaynağı aslında protokollerdir. Xamarin.Mac bunları geçersiz kılabileceğiniz sanal yöntemlerle temel sınıflar olarak kullanıma sunar. C# arabirimleri ile Objective-C protokoller arasındaki birincil fark, protokoldeki bazı yöntemlerin uygulanması isteğe bağlı olmasıdır. İsteğe bağlı olanı belirlemek için API'nin belgelerine ve/veya tanımına bakmanız gerekir.
Daha fazla bilgi için lütfen Temsilciler, Protokoller ve Olaylar belgelerimize bakın.