2012-08-16 41 views
9

कैसे मैं एक NSSplitView के शुरू होने से स्थिति सेट कर सकते?NSSplitView विभक्त की प्रारंभिक स्थिति

निकटतम बात मैंने पाया है कि यह काम करेगा लगता है कि, setPosition

//Set splitView position. 
[splitView setPosition:330 ofDividerAtIndex:0]; 

यह हालांकि कुछ भी दिखाई नहीं देता है मेरी SPLITVIEW अभी भी केंद्र में विभक्त के साथ शुरू होता है।

कोई विचार?

उत्तर

1

हो सकता है कि केंद्र है? यदि splitView सही ढंग से आपके विभाजित दृश्य पर लगा हुआ है, तो उस कोड को काम करना चाहिए। विभाजक की स्थिति निर्धारित करने की कोशिश करने से पहले आपको शायद [splitView minPossiblePositionOfDividerAtIndex: 0] और [splitView maxPossiblePositionOfDividerAtIndex: 0] लॉग इन करना चाहिए ताकि आप संभावित मानों को जान सकें।

+0

हाँ, यह केंद्र नहीं है। मेरा न्यूनतम मूल्य 0 है और मेरा अधिकतम मूल्य 99 9 है। – arooo

+0

मुझे नहीं पता कि क्या कहना है - यह मेरे लिए ठीक काम करता है। मुझे आश्चर्य है कि क्या इसकी बाधाओं के साथ कुछ भी करना है? मैंने बस एक अलग दृश्य को खींच लिया, प्रत्येक तरफ कुछ बटन और टेक्स्ट फ़ील्ड जोड़े (इसलिए कुछ देखने के लिए कुछ होगा) और कोड की एक पंक्ति जोड़ा। – rdelmar

+0

ऐसा लगता है कि यह मुद्दा कहीं और स्थित है, मेरे पास एक सेटिंग है जो उपयोगकर्ता को अपना डिफ़ॉल्ट दृश्य चुनने की अनुमति देती है- यदि मैं दृश्य को डिफ़ॉल्ट के रूप में splitView के साथ सेट करता हूं तो विभाजन केंद्र में होता है। यदि मैं मुख्य दृश्य के रूप में एक और दृश्य सेट करता हूं और splitView के साथ दृश्य में क्लिक करता हूं तो सबकुछ ठीक काम करता है। कोई विचार क्या इसका कारण हो सकता है? – arooo

2

NSSplitView उन्हें लेआउट सही ढंग से बनाने के लिए प्रारंभिक गैर आकार सीमा की जरूरत है। यदि आपके दृश्य में शून्य आकार है, तो यह अपेक्षित लेआउट नहीं दिखाएगा।

सबसे अच्छा तरीका प्रदान कर रहा है गैर शून्य लेआउट (यह क्या आईबी करता है), लेकिन कभी कभी यह असंभव है।

आप गैर शून्य आकार प्रदान नहीं कर सकते हैं, तो मुझे लगता है कि आप मैन्युअल रूप से अपने आप को सब कुछ लेआउट के लिए उचित - (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize प्रतिनिधि विधि कार्यान्वयन प्रदान करने के लिए है।

4

आप विभक्त की स्थिति सेट नहीं है (यह मेरे वर्तमान सबसे अच्छा अभ्यास है), तो आप अपने NSSplitView के subviews के आकार निर्धारित किया है। विभाजक को फिर से स्वचालित रूप से स्थानांतरित किया जाता है।

let subview: NSView = mySplitView.subviews[1] as NSView 
subview.setFrameSize(NSMakeSize(subview.frame.size.width, 100)) 
0

विभाजित दृश्य

override func viewWillAppear() { 
    self.mySplitView.setPosition(120, ofDividerAtIndex: 0) 
} 

देखने के वर्ग आवास में या जहाँ भी आप चाहते हैं कि उसे शुरू करने के लिए:

यह कैसे मैं अपने विभक्त और subview आकार (तेज) में तैनात है।