2012-05-01 17 views
8

में पंक्तियों की संख्या के आधार पर NSTableView या NSScrollView का आकार बदलें मेरे पास एक दृश्य-आधारित NSTableView है जो NSScrollView में एम्बेड किया गया है। इसमें कस्टम सेल हैं जो x पिक्सेल उच्च संख्या वाले हैं। NSScrollView पैनल के समान आकार है कि यह एक सबव्यूव है। मैं तालिका में कितनी पंक्तियां हैं इस पर निर्भर करता हूं कि मैं संपूर्ण एनएसटीबल व्यू का आकार बदलना चाहता हूं।तालिका

सब कुछ आकार बदलने के अलावा काम कर रहा है। आईबी में मैन्युअल रूप से स्क्रॉल व्यू का आकार बदलना वांछित प्रभाव लगता है, लेकिन NSSrollView में इसके दृश्य का आकार बदलने के लिए क्लास विधि नहीं है (जैसे एनएसवी व्यू सेटफ्रेम है)। क्या मुझे स्कॉलव्यू, टेबलव्यू, दोनों, या कुछ और का आकार बदलना चाहिए? क्या NSScrollView में एक सेटफ्रेम विधि या समान है जो मुझे याद आ रही है?

धन्यवाद।

+0

आपको ऐसा करने की आवश्यकता क्यों है? यदि आप इंटरफ़ेस बिल्डर में 'NSTableView' रखते हैं, तो यह पहले से ही स्क्रॉल व्यू के अंदर है और सब कुछ आपके लिए प्रबंधित किया जाता है। –

उत्तर

4

प्रोग्रामेटिक रूप से इसे करने का प्रयास करने से पहले, सुनिश्चित करें कि आपके पास एनआईबी फ़ाइल में रूपरेखा दृश्य के ऑटोसाइजिंग मास्क ठीक से सेट हैं। ऐसा लगता है कि आप बस रूपरेखा दृश्य (और इसके स्क्रॉल व्यू) को हमेशा उसी आकार के रूप में रखना चाहते हैं, जिसमें वह अंदर है।

enter image description here

दूसरे शब्दों में, सेट अप करने के हमेशा एक ही आकार के रूप में रहने के लिए:

डिफ़ॉल्ट रूप से, एक NSScrollView/NSOutlineView कॉम्बो की स्वत: आकार बदलना मास्क है कि आप एक विंडो में जगह ऐसा दिखाई देता है अब यह कोई फर्क नहीं पड़ता कि आप खिड़की का आकार कितना बड़ा कर सकते हैं।

enter image description here

कि ऐसा करने के लिए, आप सफेद स्वत: आकार बदलना बॉक्स में क्लिक करें जहाँ कहीं भी करने के लिए एक बिंदीदार लाल रेखा है:

क्या आप क्या करना चाहते छवि में नीचे की तरह लग रहे करने के लिए स्वत: आकार बदलना मास्क बदलने के लिए है इसे एक ठोस लाल रेखा में टॉगल करें। एक बार यह कॉन्फ़िगर किए जाने के बाद, स्क्रॉल व्यू (और टेबल व्यू) हमेशा (स्वचालित रूप से) विंडो के आकार के समान आकार के रूप में आकार दिया जाएगा।

शेर के नए उपयोग करके इसे प्राप्त करने का एक तरीका भी हो सकता है " ऑटो लेआउट "सुविधा है, लेकिन मुझे इसे किसी ऐसे व्यक्ति को छोड़ना होगा जिसके साथ अधिक अनुभव हो।

+0

मुझे नहीं पता था कि मैं आईबी में ऐसा कर सकता हूं! इस तरह के एक पूर्ण जवाब के लिए धन्यवाद। – rick

1

मामले में आप वास्तव में यह करने के लिए (जैसे जब आप सभी पंक्तियों स्क्रॉल करने की आवश्यकता को समाप्त करने scrollview में फिट करना चाहते हैं के रूप में) आप कर सकते हैं देखने की जरूरत है और स्क्रॉल दृश्य केवल खिड़की के एक हिस्से है /:

[[myTableView enclosingScrollView] setFrame:newFrameRect]; 
+0

मैंने इस तकनीक की कोशिश की लेकिन तालिका ने दृष्टि से अद्यतन नहीं किया, क्या कोई और कमांड इस्तेमाल किया जाना चाहिए? –