-[NSTextView setSelectedTextAttributes:...]
का उपयोग करें।
उदाहरण के लिए:
[textView setSelectedTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[NSColor blackColor], NSBackgroundColorAttributeName,
[NSColor whiteColor], NSForegroundColorAttributeName,
nil]];
आप बस एक खाली शब्दकोश पारित कर सकते हैं यदि आप चयन बिल्कुल किसी भी तरह से संकेत दिया (सम्मिलन बिंदु को छुपाने का संक्षिप्त रूप) नहीं करना चाहती।
एक और विकल्प चयन परिवर्तनों को देखने और temporary attributes का उपयोग करके "चयन" लागू करना है। ध्यान दें कि वर्तनी और व्याकरण की गलतियों को दिखाने और परिणामों को खोजने के लिए अस्थायी विशेषताओं का उपयोग किया जाता है; इसलिए यदि आप NSTextView की इन विशेषताओं को संरक्षित करने की परवाह करते हैं तो सुनिश्चित करें कि केवल अस्थायी विशेषताओं को जोड़ने और निकालने के लिए, उन्हें प्रतिस्थापित न करें।
इस का एक उदाहरण (क NSTextView उपवर्ग में) है:
- (void)setSelectedRanges:(NSArray *)ranges affinity:(NSSelectionAffinity)affinity stillSelecting:(BOOL)stillSelectingFlag;
{
NSArray *oldRanges = [self selectedRanges];
for (NSValue *v in oldRanges) {
NSRange oldRange = [v rangeValue];
if (oldRange.length > 0)
[[self layoutManager] removeTemporaryAttribute:NSBackgroundColorAttributeName forCharacterRange:oldRange];
}
for (NSValue *v in ranges) {
NSRange range = [v rangeValue];
if (range.length > 0)
[[self layoutManager] addTemporaryAttributes:[NSDictionary dictionaryWithObject:[NSColor blueColor] forKey:NSBackgroundColorAttributeName]
forCharacterRange:range];
}
[super setSelectedRanges:ranges affinity:affinity stillSelecting:stillSelectingFlag];
}
स्रोत
2010-11-29 02:13:28
clearColor लिए पृष्ठभूमि रंग की स्थापना करके, मुख्य आकर्षण काम करता है के बाद ही संपूर्ण चयन पूरा हो गया है। चयन के चलते मैं इन विशेषताओं को कैसे लागू कर सकता हूं? – DexterW
माउस बटन जारी होने तक अधिसूचनाएं वितरित नहीं की जाती हैं (यानी, अब आप अभी भी चयन नहीं कर रहे हैं)। यदि आप प्रगति पर चयन को संभालना चाहते हैं, तो आपको NSTextView को उपclass करना होगा (कुछ नमूना कोड प्रदान करने के लिए मेरा उत्तर संपादित करें)। –