2011-01-13 9 views
9

सफारी में एक पता फ़ील्ड बनाने के बारे में जाने का सबसे अच्छा तरीका क्या है?एनएसटीएक्स्टफाल्ड सफारी पता बार की तरह

संपादन योग्य टेक्स्ट रखने की आवश्यकता है, और प्रगति सूचक पृष्ठभूमि का निर्धारण करें।

उत्तर

5

आप NSTextField को केवल उपclass कर सकते हैं और प्रगति के लिए कुछ रंग या ढाल (या जो कुछ भी) के साथ पूरी चौड़ाई के उपयुक्त प्रतिशत को "भरने" के लिए -drawRect: विधि को ओवरराइड कर सकते हैं। अगर मैं आपका प्रश्न सही समझ रहा हूं।

-(void)drawRect:(NSRect)dirtyRect { 
    CGFloat progress = 0.33; 

    NSRect progressRect = [self bounds]; 
    progressRect.size.width *= progress; 

    [[NSColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:0.4] set]; 
    NSRectFillUsingOperation(progressRect, NSCompositeSourceOver); 

    [super drawRect:dirtyRect]; 
} 

स्पष्ट रूप से "प्रगति" आपके द्वारा घोषित संपत्ति से आएगी और मॉडल के अनुसार अपडेट की जाएगी। आपको यह सुनिश्चित करना होगा कि setDrawsBackground: बंद है, या पृष्ठभूमि को आपके कस्टम ड्राइंग को देखने के लिए [NSColor clearColor]; पर सेट किया गया है।

यह उपरोक्त कोड से एक शॉट है।

Tested Theory

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