Xamarin. Mac 'teki ortak desenler ve deyimler
C# aracılığıyla sunulan Apple API 'Lerinde, bazı ıoms ve desenler daha fazla ve daha fazla çalışır. Xamarin. iOS ile programlamaya deneyiminiz varsa bunlar tanıdık gelebilir. Belgeler bu desenleri ve deyimleri her zaman sürekli olarak ifade eder; böylece, bunların sürekli bir şekilde anlaşılması, bulduğunuz belgelerde fikir almanıza yardımcı olur.
MVC-model görünüm denetleyicisi
Model Görünüm denetleyicisi veya Short için MVC, Cocoa genelinde bulunan çok yaygın bir modeldir. Ayrıntılı bir tartışma bu belgenin kapsamının ötesinde, ancak kısa bir açıklama, uygulamanızı bileşenlere yapılandırma yöntemidir:
- Model nesneleri görüntülenen ve geçirilmekte olan temel verileri temsil eder (bir adres defterindeki adresler gibi)
- Nesneleri görüntüleme , ekranda belirli bir nesnenin çizimini işleme ve kullanıcı etkileşimini işleme (ekrandaki adresi gösteren bir metin alanı)
- Denetleyici nesneleri, model ve görünüm arasındaki etkileşimi işler. Kullanıcılar Kullanıcı arabiriminde değişiklik yaparken görünümü güncelleştirmek ve görünümden "aşağı" değişiklikleri göndermek için model değişikliklerini "yukarı" gönderir.
Bir WPF gibi diğer kitaplıkların MVVM (model görünümü ViewModel) hakkında bilginiz varsa, denetleyici ViewModel ile benzer şekilde davranır, ancak genellikle belirli kullanıcı arabirimi öğelerine daha yakından bağlanır.
Daha fazla ayrıntı burada bulunabilir:
Veri kaynağı/temsilci/altsınıflama
Cocoa 'daki diğer yaygın bir model, UI öğelerine veri sağlamaya ve kullanıcı etkileşimlerine yeniden davranmaya yardımcı olacak. NSTableViewÖrnek olarak kullanarak her satır için verileri, bu satırı temsil eden bazı Kullanıcı arabirimi öğelerini, kullanıcı etkileşimlerine tepki veren bazı davranışlar kümesini ve büyük olasılıkla bazı özelleştirme miktarını sağlamanız gerekir. Veri kaynağı ve temsilci desenleri, altsınıflama etmek zorunda kalmadan çoğu durumu idare etmenize olanak tanır NSTableView .
DataSourceÖzelliği, tabloyu verilerle doldurmak için çağrılan özel bir alt sınıfının bir örneğini atanırNSTableViewDataSource(GetRowCountve aracılığıylaGetObjectValue).DelegateÖzelliği,NSTableViewDelegatebelirli bir model nesnesi (aracılığıyla) için görünümü sağlayanGetViewForItemve Kullanıcı arabirimi etkileşimlerini (DidClickTableColumn,MouseDownInHeaderOfTableColumnvb.) sağlayan özel bir alt sınıfının bir örneğini atanır.
Bazı durumlarda, bir denetimi temsilci veya veri kaynağında verilen kancalar dışında bir şekilde özelleştirmek isteyeceksiniz ve görünümün sınıfını doğrudan oluşturabilirsiniz. Ancak, varsayılan davranışı geçersiz kılan birçok durumda, bu davranışın tümünü kendi başınıza idare etmeniz gerekir (seçim davranışını özelleştirmek için seçim davranışlarının tamamını uygulamanız gerekebilir).
Xamarin. iOS içinde, gibi bazı API 'Ler, UITableView hem temsilciyi hem de veri kaynağını () uygulayan bir özellikle genişletilir UITableViewSource . Bu, tek bir C# sınıfının yalnızca bir temel sınıfa sahip olduğu ve protokollerimizin temel sınıflar aracılığıyla yaptığı yaygın sınırlamaya geçici çözüm elde etmek için kullanılır.
Xamarin. Mac uygulamasındaki tablo görünümleriyle çalışma hakkında daha fazla bilgi için lütfen Tablo görünümü belgelerimize bakın.
Protokoller
İçindeki protokoller Objective-C C# içindeki arabirimlere karşılaştırılabilir ve birçok 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 sunar. C# arabirimleri ve protokolleri arasındaki birincil fark, Objective-C bir protokoldeki bazı yöntemlerin uygulanması için isteğe bağlı olabilir. İsteğe bağlı olanları belirlemek için bir API 'nin belgelerine ve/veya tanımına bakmanız gerekir.
Daha fazla bilgi lütfen temsilcilerimize, protokollerimizi ve olaylarımıza bakın.