2016-09-29 4 views
9

मैक ओएस सिएरा और नए XCode संस्करण मैं निम्न त्रुटि प्राप्त करने के लिए हर बार अपग्रेड करने के बाद मैं NSToolbarItems में से हर एक के लिए मेरे आवेदन शुरू:NSToolbarItem: "सुनिश्चित करें कि इस टूलबार आइटम में वैध फ्रेम/न्यूनतम/अधिकतम आकार है"?

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 

मैं कोई भाग्य के साथ आकार बदलने स्टोरीबोर्ड में चारों ओर खिलवाड़ की कोशिश की , जब मैंने चारों ओर खोज की, तो मुझे इस मुद्दे के साथ-साथ नए ओएस के साथ कुछ लोगों को मिला लेकिन कोई उपयोगी जवाब नहीं मिला।

कोई भी एक ही समस्या का सामना कर रहा है, कोई सलाह? इस

धन्यवाद एक बहुत,

मार्क

उत्तर

1

इंटरफ़ेस बिल्डर में इसे हल करने में सक्षम नहीं था। हालांकि NSToolbarItem के उप-वर्ग में minSize ओवरराइडिंग इस मुद्दे को हल किया।

- (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

इसके लिए धन्यवाद, मैं आपके दृष्टिकोण के साथ गया! मुद्दे चले गए! – MMV

0

मूल रूप से मैंने कोशिश की (सोचा नीचे अद्यतन देखें):

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

सारांश:

मेरे विकल्प हैं:

  • ऊपर के रूप में अधिकतम आकार बदलें, और टूलबार आइटम संभावित रूप से गलत आकार प्री-सिएरा दिखाई देते हैं;

  • चेतावनी को अनदेखा करें और प्रत्येक संस्करण में सब कुछ दिखाना चाहिए;

भी ध्यान रखें कि:

मैं सोचा था कि मैं पहले से ही सफलता के बिना इस की कोशिश की होगी, जब तक मुझे एहसास हुआ हो रहा था क्या: मैं मान संपादित किया था, तो उपकरण पट्टी संपादक को बंद कर दिया आईबी में अब मुझे एहसास हुआ है कि परिवर्तन सहेजे नहीं जा रहे थे; जब मैंने टूलबार संपादक को फिर से खोल दिया, तो पुराने मान अभी भी दिखाए जा रहे थे। के साथ एक बार चल रहा है खुला उपकरण पट्टी संपादक परिवर्तन 'ले "बना दिया है करने के लिए (और हाँ, मैं विभिन्न चरणों में सफाई की कोशिश की।)

अद्यतन दिसंबर वर्ष 2016 -------

लगता है। ।

किसी कारण minSize अभी भी समय-समय पर बेतरतीब ढंग से बदल रहा था के लिए अंत में मैं निम्नलिखित वर्ग को यह NSToolBarItems के सभी लिंक कर दिए हैं यह मेरे लिए यह तय किया है:

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

मेरे लिए, बदलते अधिकतम का आकार ऊपर वर्णित NSToolbaritem काम नहीं किया था। लेकिन को बदलना न्यूनतम इसका आकार चाल था। चेतावनी संदेश अब चला गया है।

+0

वास्तव में, मेरे लिए दोनों थे। वोमी स्पष्टीकरण के लिए धन्यवाद। – MMV

0

मैंने वास्तव में इस मुद्दे पर मुझे और अधिक समय बर्बाद कर दिया था, लेकिन चेतावनियों से छुटकारा पाने से मेरी चीजों में से एक है। मेरे लिए, इससे कोई फर्क नहीं पड़ता कि मैंने टूलबार बटन मिनट/अधिकतम आकार को किस प्रकार बदल दिया है, यह एक या दो पिक्सेल से गलत आकार के बारे में शिकायत करता है। मैं गलती से निम्नलिखित कामकाज पर ठोकर खाई। मेरे बटन 'नियमित' नियंत्रण आकार का उपयोग करते हैं।आईबी में, मैंने प्रत्येक एनएसबटन नियमित से छोटे, छोटे से मिनी तक और फिर मिनी को नियमित रूप से बदल दिया। इसके बाद मैंने प्रत्येक NSToolbarItem की अधिकतम ऊंचाई को अधिकतम से कम से कम दो समायोजित किया। मुझे यकीन नहीं है कि प्रक्रिया में वास्तव में क्या हुआ। एक आसान समाधान हो सकता है, लेकिन अब मैंने अपना स्टोरीबोर्ड किया है और मैं अभी भी अपनी सांस पकड़ रहा हूं कि चेतावनियां वापस नहीं आतीं!

0

समस्या मिली! समस्या यह है कि एक्सकोड में आईबी में, मिनीसाइज फ़ील्ड XIB स्रोत के लिए केवल एक तरफा बंधे हैं। यदि आप आईबी में NSToolbarItem minSize को बदलते हैं, तो यह उचित रूप से बचाता है। लेकिन यदि आप पैनल को फिर से खोलते हैं, या तो एक्सकोड को फिर से खोलकर, प्रोजेक्ट को फिर से खोलना या गुण पैनल को फिर से खोलना, यह फिर से डिफ़ॉल्ट मान दिखाता है। इसलिए इस बिंदु पर गुण पैनल W 127 एच 25 दिखा सकता है भले ही XIB फ़ाइल (एक्सएमएल) का स्रोत डब्ल्यू 12 9 एच 27 दिखाता है (जो भी मूल्य आपने पिछली बार सेट करने का प्रयास किया था)। तो एक्सकोड आईबी के गुण पैनल में minSize फ़ील्ड मान सही ढंग से सेट नहीं हैं। यह भ्रमित स्थिति की ओर जाता है जो NSToolbarItem के प्रॉपर्टी पैनल को फिर से खोलने के बाद सहेजता है, आपके परिवर्तन फिर से ओवरराइट हो जाएंगे। यह एक एक्सकोड बग ऐसा लगता है। @ मैरियस का जवाब इस रनटाइम को हल करता है, दूसरा समाधान minSize सेट करने के बाद फिर से NSToolbarItem गुणों को खोलना नहीं है।

संबंधित मुद्दे