2012-06-28 10 views
6

Scroller http://f.cl.ly/items/1b1v2D2X1D092k2R1C0i/Scrollbar.pngस्क्रॉलर पृष्ठभूमि NSScrollView

हाय में पारदर्शी नहीं है! मैं एक NSScrollView का उपयोग कर रहा हूं जिसमें दृश्य-आधारित NSTableView है। जब भी तालिका एक टेबल सेल जोड़ती है तो स्क्रोलर दिखाते हैं कि ठीक है जब तक कि आप देखते हैं कि स्क्रॉलर्स की पारदर्शी पृष्ठभूमि नहीं है। किसी कारण से यह पृष्ठभूमि सफेद है जैसा कि आप छवि पर देख सकते हैं।

मैंने आईएसएस का उपयोग NSScrollView और NSTableView को सेट करने के लिए किया था और मुझे कोई विकल्प नहीं मिला है जहां मैं स्क्रॉलर की पृष्ठभूमि को अक्षम कर सकता हूं। किसी भी विचार के कारण क्या हो सकता है?

अद्यतन: Xcode में मेरी NSScrollView के लिए सेटिंग्स

Xcode http://f.cl.ly/items/2R0k1x0T1X0A160E3l2i/Screen%20Shot%202012-06-29%20at%2002.06.32.png

उत्तर

2

मेरी केवल सुझाव है कि अपने NSScrollers डिफ़ॉल्ट शैली के हैं, या एक वर्ग है कि + (BOOL)isCompatibleWithOverlayScrollers ओवरराइड करता है अगर आप एक प्रयोग कर रहे हैं करने के लिए सेट सुनिश्चित करने के लिए है कस्टम स्क्रोलर।

आईबी में, जांचें कि "डिफ़ॉल्ट स्टाइल" को "स्क्रॉलर नोब्स" के तहत चुना गया है, जो शीर्ष से दूसरा है।

enter image description here


ओएस एक्स शेर Snow Leopard में वर्तमान और SL (विरासत scrollers) से पहले के संस्करणों के विपरीत नई NSScrollers (ओवरले scrollers) की शुरुआत की। ओवरले स्क्रोलर वे प्रकार हैं जो फीका/आउट करते हैं, और चमकदार सफेद पृष्ठभूमि के बिना सामग्री के शीर्ष पर आकर्षित करते हैं।

कुछ परिदृश्यों में शेर नए ओवरले स्क्रॉलर्स की बजाय विरासत स्क्रोलर का उपयोग करने का निर्णय लेता है (क्योंकि, अगर एक पॉइंटर डिवाइस w/o स्क्रोल व्हील प्लग इन किया गया है, तो यह एक छिपी ओवरले स्क्रोलर को बिल्कुल स्क्रॉल नहीं कर सकता)

The OS X 10.7 documentation इसे अच्छी तरह से समझाता है। सारांशित करने के लिए, जांचें कि क्या ए) उपयोगकर्ता ने ओवरले स्क्रॉलर्स को अक्षम किया है, बी) यदि आपके पास असमर्थित डिवाइस प्लग इन है, या सी) आप एनएसएससीरोलर को उप-वर्गीकृत कर रहे हैं, सहायक दृश्य जोड़ रहे हैं, या + (BOOL)isCompatibleWithOverlayScrollers को ओवरराइड करना भूल गए हैं।

यदि आप दिखाए गए विरासत स्क्रॉलर्स को नापसंद करते हैं और गैर-समर्थित डिवाइसों का समर्थन करना चाहते हैं (उदाहरण के लिए सामग्री के शीर्ष पर खींची गई एक ग्रे स्क्रॉलबार जो कि बाहर/बाहर फीका नहीं है) तो आपको NSScroller उप-वर्ग होना चाहिए और इसे कस्टम-ly बनाना चाहिए। मैक के लिए ट्विटर जैसे एप्लिकेशन ऐसा करते हैं।

+0

मैं कस्टम स्क्रॉलर्स का उपयोग नहीं कर रहा हूं। डिफ़ॉल्ट शैली का उपयोग दुर्भाग्य से कुछ भी नहीं बदला था।मैंने अपनी पोस्ट को NSScrollView के लिए मेरी सेटिंग्स की एक छवि के साथ अपडेट किया। मुझे पता है कि यह हमेशा ऐसा नहीं था। – iMaddin

+0

क्या आप हिम तेंदुए या ऐसा कुछ भी बना रहे हैं? – Vervious

+1

यह सुनिश्चित करना भी अच्छा होगा कि ए) उपयोगकर्ता ने ओवरले स्क्रॉलर्स का उपयोग न करने के लिए स्पष्ट रूप से सेट नहीं किया है, बी) कि माउस कनेक्ट नहीं है, और सी) स्क्रॉल व्यू में कोई सहायक दृश्य नहीं है – Vervious

16

एनएसएसक्रॉलर ओवरराइड करें और निम्न कार्य करें। यह आपको एक पारदर्शी पृष्ठभूमि देगा।

- (void) drawRect: (NSRect) dirtyRect 
{ 
    [self drawKnob]; 
} 
+0

का उपयोग करने का प्रयास करने जा रहा हूं बहुत बहुत धन्यवाद। इसने काम कर दिया। :) – Sid

+0

धन्यवाद एक टन !!! – user361526

+0

क्या आप इस पर विस्तार कर सकते हैं? मैंने इस तरह के कुछ जवाब देखा है। निश्चित रूप से इसे मेरे प्रोग्राम में कॉपी करना वास्तव में कहीं से भी बुलाए बिना काम नहीं करेगा? – maxisme

1

मेरे लिए, मेरे विचार नियंत्रक में मैं जैसे स्क्रोलर शैली सेट:

[_scrollView setScrollerStyle:NSScrollerStyleOverlay]; 

यह बनाया scrollers पारदर्शी पृष्ठभूमि है।

-1

आप NSScrollView में पारदर्शिता हासिल करना चाहते हैं या बस पुस्तक देखने के लिए एक स्पष्ट पृष्ठभूमि चाहते हैं ... बस NSScrollView की setDrawsBackground संपत्ति के उपयोग यानी बनाने के लिए, .:

[scrollView setDrawsBackground:NO]; 

आशा इस कोई मदद करता है। धन्यवाद :)

+1

प्रश्न NSScrollerView की नहीं, NSScroller की पृष्ठभूमि के बारे में है। आपका उत्तर NSScroller की पृष्ठभूमि को नहीं बदलता है। – Ely

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