मैं ओएस एक्स कोको विकास के लिए नया हूं और योसामेट के लिए स्टोरीबोर्ड का उपयोग कर एक स्विफ्ट ऐप पर काम कर रहा हूं।ऑटो लेआउट का उपयोग कर न्यूनतम और प्रारंभिक चौड़ाई NSSplitView पैनल कैसे सेट करें?
मेरे आवेदन की मुख्य विंडो में, मेरे पास एक NSSplitViewController है। प्रत्येक पैनल के लिए, बाएं और दाएं, मैंने रूट कस्टम व्यू जोड़ा जिसमें सभी सबव्यूव होंगे।
ऑटो लेआउट का उपयोग करना, मैं स्प्लिट दृश्य में देखें के किनारों से कस्टम दृश्य पिन किया हुआ है और यह भी से अधिक होना कस्टम दृश्य की चौड़ाई के लिए एक बाधा को परिभाषित किया है या एक के बराबर न्यूनतम संख्या
यह सब ठीक काम करता है। जब खिड़की खुलती है, तो विंडो चौड़ाई दो पैनलों की न्यूनतम चौड़ाई बाधाओं का योग होता है। जो मैं समझ नहीं सकता वह अगला कदम है।
मैं कस्टम दृश्य को एक और चौड़ाई बाधा कैसे देता हूं ताकि जब खिड़की खुलती है, तो प्रारंभिक चौड़ाई न्यूनतम से अधिक है (300 कहें)? मैं चाहता हूं कि पैनल 200 के रूप में छोटे होने में सक्षम हो, लेकिन मैं चाहता हूं कि प्रारंभिक आकार 300 हो। मैं नहीं चाहता कि विंडो छोटी छोटी चौड़ाई पर खुल जाए। फिर उपयोगकर्ता को हर बार इसका आकार बदलना होगा और यह एक अच्छा उपयोगकर्ता अनुभव नहीं होगा।
इसे करने और इसे पूरा करने के लिए, मैंने कस्टम प्राथमिकता के लिए 300 के लिए एक और चौड़ाई बाधा जोड़ा (सभी अलग-अलग मान 200, 500, 800 इत्यादि का प्रयास किया) लेकिन उनमें से कोई भी मुझे वांछित परिणाम नहीं देता चौड़ाई मूल्य जा रहा है 300 और पैनल 200.
की एक न्यूनतम चौड़ाई वहाँ यह पूरा करने के लिए एक तरह से हो गया है हो रही है, लेकिन मैं तो बस पर कैसे स्टम्प्ड रहा हूँ। कृपया सहायता कीजिए!
अद्यतन
यहाँ NSSplitViewController के नजरिए के constraintsAffectingLayoutForOrientation से उत्पादन होता है:
<NSLayoutConstraint:0x6000000923e0 H:|-(0)-[NSView:0x600000124c40] (Names: '|':NSView:0x600000124ba0)>,
<NSLayoutConstraint:0x6000000924d0 H:[NSView:0x600000124c40]-(0)-| (Names: '|':NSView:0x600000124ba0)>,
<NSLayoutConstraint:0x600000092070 H:[NSView:0x600000124c40(>=200)]>,
<NSLayoutConstraint:0x600000092660 _NSSplitViewItemViewWrapper:0x6000001416b0.width == NSView:0x600000124ba0.width>,
<NSLayoutConstraint:0x600000093a10 H:|-(0)-[_NSSplitViewItemViewWrapper:0x6000001416b0](LTR) (Names: '|':NSSplitView:0x608000123b60)>,
<NSLayoutConstraint:0x600000093b50 H:[_NSSplitViewItemViewWrapper:0x6000001416b0]-(1)-[_NSSplitViewItemViewWrapper:0x6000001429f0](LTR)>,
<NSAutoresizingMaskLayoutConstraint:0x600000093d80 h=-&- v=-&- H:[NSSplitView:0x608000123b60]-(0)-| (Names: '|':NSView:0x6000001242e0)>,
<NSAutoresizingMaskLayoutConstraint:0x600000093b00 h=-&- v=-&- H:|-(0)-[NSSplitView:0x608000123b60] (Names: '|':NSView:0x6000001242e0)>,
<NSAutoresizingMaskLayoutConstraint:0x600000094050 h=-&- v=-&- H:|-(0)-[NSView:0x6000001242e0] (Names: '|':NSThemeFrame:0x100940be0'Main Window')>,
<NSLayoutConstraint:0x600000093c40 H:[_NSSplitViewItemViewWrapper:0x6000001429f0]-(0)-|(LTR) (Names: '|':NSSplitView:0x608000123b60)>,
<NSLayoutConstraint:0x600000092890 H:[NSView:0x600000124f60]-(0)-| (Names: '|':NSView:0x600000124ec0)>,
<NSLayoutConstraint:0x6000000926b0 H:[NSView:0x600000124f60(>=400)]>,
<NSLayoutConstraint:0x608000099d20 _NSSplitViewItemViewWrapper:0x6000001429f0.width == NSView:0x600000124ec0.width>,
<NSLayoutConstraint:0x600000092840 H:|-(0)-[NSView:0x600000124f60] (Names: '|':NSView:0x600000124ec0)>]
के माध्यम से सॉर्ट करने के लिए की कमी की बड़ी संख्या की वजह से
, मैं एक ब्रांड के नए परीक्षण परियोजना बनाने का फैसला किया और देखें कि यह बॉक्स से बाहर होता है या यह कुछ सेटिंग थी जिसे मैंने अपने आवेदन में बदल दिया था। परीक्षण प्रोजेक्ट में मैंने अभी व्यू कंट्रोलर को हटा दिया है, विंडो में स्प्लिट व्यू कंट्रोलर जोड़ा है और बस प्रत्येक पैनल में दो साधारण टेक्स्ट व्यू जोड़े हैं। फिर प्रोजेक्ट चलाते हुए, बाएं हाथ के पैनल को ध्वस्त कर दिया गया। तो मैंने प्रत्येक पाठ दृश्य में न्यूनतम चौड़ाई बाधा जोड़ा और फिर परीक्षण परियोजना में भी यही बात हुई। कोई फर्क नहीं पड़ता कि मैंने इसे स्टोरीबोर्ड में क्या सेट किया है, विंडो का आकार न्यूनतम चौड़ाई के अतिरिक्त है। शायद इसे पाने का एकमात्र तरीका कोड में खिड़की/विभाजित दृश्य आकार सेट करना है।