2010-11-30 22 views
8

Belirli bir üstbilgi sütununu tıklattığımda, tablodaki verilerin ters çevrilmesini veya tersini almasını sağladığımda bir NSTableView var. NSTableView ve NSTableColumn'u kontrol ettim, ancak bunu devre dışı bırakan herhangi bir yöntem bulamadı. Belirli bir sütunun başlığına tıklayarak bu sıralama işleminin devre dışı bırakılmasına yardımcı olabilecek bir kişi varsa mecbur kalırdım.NSTableVIew'da sıralama nasıl devre dışı bırakılır?

+1

Lanet olsun, lütfen soru başlığınızı "[Objective C]" ile işaretlemeyin. Sadece bir kısa çizgi eksik değil, aynı zamanda noktayı da kaçırıyorsunuz. Etiketler bunun için var. –

+0

@ Jonathan: Takdir edecektim, bazı cevaplar buldunuz mu? – Omayr

+1

Kakao Bindings kullanıyor musunuz? Ayarlarınız neler? – Yuji

cevap

36

NSTableView'un seçilmesi, sortDescriptors tarafından yapılır, bkz. here.

Bir NSTableColumn kullanır onun sortDescriptorPrototype (here bakınız) verileri yönetmek için dataSource kullanmak istersek, vb sütun başlığını kaç kez tıkladığı bağlı

NSTableView tür tanımlayıcısı oluşturmak için sıralama tanımlayıcısı tableView:sortDescriptorsDidChange: delegesi yöntemi aracılığıyla iletilir, bkz. here. Sıralamayı durdurmak için değişiklik mesajını görmezden gelmeniz yeterlidir.

Verileri yönetmek için Cocoa bağlamaları kullanırsanız, sıralama tanıtıcısı tablo sütunu tarafından oluşturulur ve NSArrayController olarak ayarlanır. Bunu durdurmak için, tablo sütununun bağlayıcısını denetleyiciyi açmanız yeterlidir, value'u seçin ve "Sıralama Tanımlayıcısı Oluştur" un işaretini kaldırın.

+0

Walaah! Bu harika, bağlayıcıları kullanıyordum ve sorun şimdi çözüldü. Teşekkürler dostum – Omayr

+0

teşekkürler! Bunu nasıl durdurabiliriz, sadece tablo sütununun bağlayıcısının denetçisini açın, değeri seçin ve "Taslak Tanımlayıcıyı Yarat." seçeneğinin işaretini kaldırın. – sharkyenergy

+0

Her zaman aynı sıralama tanımlayıcı dizisini döndüren ve 'NSTableView' öğesini bu özelliğe bağlayan bir özellik oluşturabilirsiniz. – Flovdis

İlgili konular