2014-10-27 20 views
11

ışık canlılık görünümünü kullanmak gibi görünüyor. Finder (ve bazı diğer üçüncü uygulamalarda, Things.app örneğin) kaynak listesinde Seçilen maddenin koyu canlılık görünüşü ile tespit edilir. Örneğin, aşağıdaki resimde bulunan Masaüstü satırına bakın.Nasıl OS X 10.10 Dark canlılık görünümünü kullanmak için kaynak listeleri Seçim vurgusunun alınır? OS X 10.10 kaynak listelerinde

Bu davranışları nasıl çoğaltabilir?

-outlineView:rowViewForItem: 

, ben Tablo satır görünümünü belirlemek için temsilci yöntemleri kullanmak gerekir mi ve teşebbüs özel kendimi çizim veya daha yalındır yaklaşım var mı? Xcode standart kaynak listesi UI yaparsanız varsayılan vurgulama biz

Source list with light vibrancy style, the selected items is darker (using a dark vibrancy style)

cevap

1

emin değilim OS X'in önceki sürümünde gördüğümüz standart mavi dikdörtgen kalır ise, bu "Karanlık canlılık" dir . Daha doğrusu "Alternatif Seçilmiş Kontrol Metin Rengi"

gibi bir şey Arka plan rengini ayarlama denemek istiyorum

InterfaceBuilder'da bir NSTextField göz at. Görsel efekt görünümlerinde özel bir görünüme sahip birçok "Kontrol Metni" rengi vardır. Bunu başarmak için bir yol bulmuş bir süre etrafta oynadıktan sonra NSTableview Change the highlight colour

11

:

ve seçim rengi (denenmemiş) bu cevaba bakınız ayarlamak için

. O NSTableViewSelectionHighlightStyleSourceList kullanarak ve benim NSOutlineView dışında tıklayarak ne zaman "Bulucu vurgulamak" tarzı alacağı ortaya çıktı. Bu yüzden, ilk cevap vermeyi reddederseniz, bu şekilde kalacağını düşünmüştüm.

Basitçe NSOutlineView bir alt sınıf yapmak ve bu yöntemi geçersiz:

-(BOOL)acceptsFirstResponder{ 
    return NO; 
} 

Çalışır, ancak bazı downsides ile. Örneğin, NSOutlineView'teki ok tuşlarının kullanılması artık çalışmayacaktır. Things uygulamasını indirdim ve ok tuşlarının kullanılmasına da izin vermiyor, bu yüzden böyle bir şey yapmaları çok olası. Herhangi biri daha iyi bir yol bulursa, lütfen gönderin. Eğer ok tuşları çalışmaya devam etmek isterseniz

+2

canlılık etkisi seçilen öğeler için varsayılan etkisidir çünkü çalışır Anahatta, ilk cevaplayıcı değil. Ok navigasyonunun diğer görünümlerde daha iyi yapılması durumunda (tercih edilen, dosyalar arasında gezinmenin beklendiği Finder.app durumunda) tercih edilen yaklaşım budur. Ancak, kullanıcı anahat görünümünde gezinmeyi beklerse (Xcode'un sol çubuğu gibi), bu numarayı kullanmamalısınız. –

5

, sen NSTableRowView alt sınıf ve aşağıdaki yöntemi geçersiz:

func outlineView(_ outlineView: NSOutlineView, rowViewForItem item: Any) -> NSTableRowView? { 
    return CustomTableRowView(frame: NSZeroRect); 
} 

Ve NSTableRowView

alt sınıfı: Burada
- (BOOL)isEmphasized 
{ 
    return NO; 
} 
+0

Benim için iyi çalışıyor.Not: Bunun için bir alt sınıf gerçekten gereklidir, sadece bir 'NSTableRowView' atayıp' isEmphasized 'özelliğini' NO 'olarak ayarlamak hile yapmaz. – hnh

3

Swift eşdeğerdir
import Cocoa 

class CustomTableRowView: NSTableRowView { 

    override var isEmphasized: Bool { 
     set {} 
     get { 
      return false; 
     } 
    } 

} 
+0

Swift 3 Xcode 8 – styl3r

+0

için benim için çalışıyor! Bütün gün boyunca bunu arıyordum ... – memis