2016-09-29 12 views
9

Ben NSToolbarItems her biri için benim uygulamayı başlatmak:NSToolbarItem: "Bu araç çubuğu öğesinin geçerli bir kare/dak/maks boyutu olduğundan emin olun"? Mac OS Sierra ve aşağıdaki hatayı alıyorum yeni XCode sürümüne her zaman yükseltme yana

Example 1: 
2016-09-29 12:46:58.659879 AppTest[] NSToolbarItem (<NSToolbarItem: >) had to adjust the size of <NSPopUpButton: > from {130, 26} to the expected size of {132, 27}. Make sure that this toolbar item view has a valid frame/min/max size. This is an app bug, please do not file a bug against AppKit or NSToolbar! Break on _NSToolbarAdjustedBorderedControlSizeBreakpoint 
Example 2: 
2016-09-29 12:46:58.666074 AppTest[] NSToolbarItem (<NSToolbarItem: >) had to adjust the size of <NSButton: > from {60, 25} to the expected size of {62, 27}. Make sure that this toolbar item view has a valid frame/min/max size. This is an app bug, please do not file a bug against AppKit or NSToolbar! Break on _NSToolbarAdjustedBorderedControlSizeBreakpoint 

hiçbir şans ile boyutunu değiştirerek film şeridi karıştırmasını çalıştı Ben, etrafta arama yaptığımda, yeni işletim sistemi ile bu konuya sahip olan birkaç kişi buldum, ancak yardımcı cevaplar yoktu.

Aynı konuyla karşılaşan herkes, herhangi bir tavsiye mi?

Çok teşekkürler,

Marc

cevap

1

Bunu arayüz oluşturucusunda çözemedim. Ancak NSToolbarItem'in alt sınıfında minSize'yi geçersiz kılmak sorunu çözdü.

- (NSSize)minSize 
{ 
    if (floor(NSAppKitVersionNumber) >= NSAppKitVersionNumber10_12) { 
     /* Overriding this getter seems to be the only solution for runtime error logs like: NSToolbarItem (<APMRegularToolbarItem: 0x60e000039460>) had to adjust the size of <NSButton: 0x60f0001acce0> from {40, 25} to the expected size of {42, 27}. Make sure that this toolbar item view has a valid frame/min/max size. This is an app bug, please do not file a bug against AppKit or NSToolbar! Break on _NSToolbarAdjustedBorderedControlSizeBreakpoint 
     */ 
     return NSMakeSize(42, 27); 
    } 
    else { 
     return [super minSize]; 
    } 
} 
+0

Bunun için teşekkürler, yaklaşımınızla gittim! Sorunlar gitti! – MMV

0

Başlangıçta denedim bu (düşünce altında güncelleme bakınız):

http://cocoa-dev.apple.narkive.com/iSLaiCLR/strange-toolbar-item-error

Özetleme:

My seçenekleri

şunlardır:

  • Maksimum boyutu yukarıdaki gibi değiştirin ve araç çubuğu öğelerinin önceden Sierra için yanlış boyutta görünmesini sağlayın;

  • Uyarıyı dikkate almayın ve her şeyin her sürümde olması gerektiği gibi görünmesini sağlayın;

Ayrıca unutmayın:

ben oluyor ne olduğunu fark edene kadar zaten başarı olmadan bu çalıştı düşündüm : Ben değerlerini değiştirdiği, daha sonra araç çubuğu editörü kapalı IB'de. Artık değişikliklerin kaydedilmediğini fark ettim; araç çubuğu düzenleyicisini yeniden açtığımda, eski değerler hala gösteriliyordu. ile bir kez Koşu açık araç çubuğu editörü (Çeşitli aşamalarda temizlik çalıştı , evet Ve.). Değişiklikleri 'take" yapmış gibi görünüyor

GÜNCELLEME Aralık 2016 -------

. minSize hala zaman zaman rastgele değişiyordu nedense

Ben şu sınıfa bu NSToolBarItems tüm bağladıktan sonunda, bu benim için sabit etti: Benim için

import Cocoa 

    class ToolbarItemAvoidMinWarningIssue: NSToolbarItem { 

    var widthT: CGFloat = 60 
    var heightT: CGFloat = 27 

    override var minSize: NSSize{ 
     get { 
      return NSSize(width: widthT, height: heightT) 
     } 
     set { 
      widthT = newValue.width 
     } 
    } 

} 
1

, değişen en fazla boyutu Yukarıda belirtildiği gibi NSToolbaritem işe yaramadı. Ancak, değerini değiştirerek boyutlarını değiştirdik. Uyarı mesajı şimdi gitti.

+0

Gerçekten de benim için her ikisi de vardı. Vomi'yi açıkladığın için teşekkürler. – MMV

0

Aslında bu konu üzerinde daha fazla zaman harcadım, ama uyarılardan kurtulmak benim işlerimden biri. Benim için, min/max boyutlarını araç çubuğu düğmesi değiştirdim ne olursa olsun, bir veya iki piksel tarafından yanlış boyutlar hakkında şikayet etti. Yanlışlıkla aşağıdaki geçici çözüm için tökezledim. Düğmelerim 'Normal' kontrol boyutunu kullanır.IB'de, her bir NSButton'u Düzenli'den Küçük'e, Küçük'den Küçük'e ve sonra Yeniden Normal'e döndürdüm. Daha sonra, her bir NSToolbarItem'un minimum yüksekliğini, maksimumdan iki daha az olacak şekilde ayarladı. Süreçte gerçekten ne olduğundan emin değilim. Daha basit bir çözüm olabilir, ama şimdi benim storyboard'umu yaptım ve hala uyarılarimin geri gelmediğini nefesimi tutuyorum!

0

Sorun bulundu! Sorun, X kodunda IB'de, minSize alanlarının XIB kaynağına tek yönlü bağlanmasıdır. IB'de NSToolbarItem minSize değiştirirseniz, uygun şekilde kaydeder. Ancak paneli yeniden açarsanız, Xcode'un yeniden açılması, projeyi tekrar açması veya özellik panelini yeniden açması, varsayılan değerleri tekrar gösterir. Bu noktada özellikler paneli, XIB dosyasının (XML) kaynağı W 129 H 27'yi (son sefere ayarladığınız değerler) gösterse bile W 127 H 25'i gösterebilir. Dolayısıyla Xcode IB'nin Özellikler panelindeki minSize alan değerleri doğru ayarlanmamıştır. Bu durum, NSToolbarItem'in Özellikler panelini yeniden açtıktan sonra tasarrufun yeniden kaydedileceğine dair kafa karıştırıcı duruma yol açar. Göründüğü bir Xcode hatası. @Marius'un cevabı bu çalışma zamanını çözer, diğer çözüm ise minSize'yi ayarladıktan sonra NSToolbarItem özelliklerini tekrar açmaz.

İlgili konular