2015-07-06 6 views
5

NSToolbarItem'in bir kümesini birlikte gruplandırmak için NSToolbarItemGroup kullanıyorum. Şu anda, gruptaki her bir öğe arasında 2pt boşluk var, ideal olarak NSSegmentedControl'e benzer şekilde görsel olarak tamamen birleştirilmelerini istiyorum.NSToolbarItemGroup Aralıksuz

Mail uygulamasını inceledikten sonra NSSegmentedControl içeren özel bir NSToolbarItem kullanıyor gibi görünüyor. Bunu geçmişte denedim ama her bir bileşenin altında ayrı ayrı etiketlerin nasıl elde edileceğini ve her bileşenin 'taşma' menüsünde ayrı ayrı görünmesini sağlayamıyorum.

Güncel Bakış:

enter image description here

İstenilen Görünüş:

kestim ediliyor 'Merkezli' biliyorum enter image description here

, bu sadece hızlı bir uygulamasıdır.

cevap

1

NSSegmentControl ürününü aşağıdaki resimde gösterildiği gibi NSToolbarItem eklemeye önerebilirim. image

enter image description here

Sen (gibi vs "Yanıtla") düğmeleri altında bazı etiketleri gerekir. Bunu başarmak için NSToolbarItem label özelliğini ayarlayabilir ve kelimeler arasında boşluk bırakabilirsiniz.

attributes inspector

+0

Teşekkür ederiz. Bu çözümü denedim ama uygulama ile ilgili büyük bir kusur var. Örnek olarak Mail.app'ı alalım (Bunu yeniden oluşturmak için araç çubuğunu ayarlamanız gerekebilir). Pencereyi yeniden boyutlandırırsanız, (Tümünü Yanıtla | Geri Al) düğmesi taşmaya gider. Eğer önerdiğin şeyi yaparsam, sadece bir tane menü öğesi olur - ama Mail.app'ta bölümlere ayrılmış öğelerin her biri için ayrı bir öğe görürsünüz. – xizor

1

Sen (Swift kullanarak) böyle NSViewController set sonra araç çubuğuna bir NSToolbarItem nesnesi ekleyebilir ve: "runStatus" için @IBOutlet adıdır

runStatus.view = RunStatusView() 

NSToolbarItem ve "RunStatusView", drawRect yönteminde bir geçersiz kılma ile bir NSView nesnesidir. NSView'in genişliğini ve yüksekliğini de belirtebilirsiniz; örneğin, 125 ° sabit olması genişliği zorlamak:

runStatus.minSize = NSSize(width: 125, height: 32) 
runStatus.maxSize = NSSize(width: 125, height: 32) 

Bu NSToolbar ürün Üzerlerinde çizim ne bağlı olarak birbirine daha yakın görünmesini sağlayabilirsiniz.

Son olarak, tam olarak istediğiniz şeyi alamıyorsanız, düğmeler grubunu tek bir NSToobarItem haline getirin ve "RunStatusView" öğesinde (yukarıdaki örneği kullanarak) istediğiniz şekilde çizin ve mouseDown olayını geçersiz kılın (ayrıca Tam olarak kullanıcının nerede olduğunu görmek için "RunStatusView"). Sonra aslında birden fazla düğme gibi davranan bir NSToolbarItem var ve toplam kontrolünüz var ve istediğiniz gibi davranabilir.