मैं एक्सकोड में मैक एप्लिकेशन विकसित कर रहा हूं। मुझे एक हाइपरलिंक जोड़ने की ज़रूरत है जो किसी विशेष साइट पर नेविगेट करता है। मैंने बटन का उपयोग करके इसे करने की कोशिश की, लेकिन मुझे पता होना चाहिए कि जब कर्सर उस बटन पर है तो कर्सर को हाथ कर्सर में कैसे बदला जाए।हाइपरलिंक
उत्तर
मेरा मानना है कि आप यूआरएल प्रदर्शित करने के लिए एक गैर-संपादन योग्य एनएसटीक्स्टफाल्ड का उपयोग कर सकते हैं। यदि आप NSAttributedString पर उचित रूप से गुण सेट करते हैं जिसे आपने फ़ील्ड की मान संपत्ति के रूप में सेट किया है, तो यह मानक नीली-अंडरलाइन के रूप में प्रदर्शित होगा और आपके लिए कर्सर ट्रैकिंग को संभालेगा। This ऐप्पल क्यू & ए आपको बताता है कि यूआरएल के लिए गुण कैसे सेट करें।
कर्सर सेट करने के लिए, आपको कर्सर ट्रैकिंग विधि addCursorRect:cursor:
का उपयोग करना होगा। हालांकि, आप वास्तव में केवल resetCursorRects
विधि के अंदर से उस विधि को कॉल करना चाहते हैं। यदि आप इसे किसी अन्य समय करते हैं, तो मूल रूप से इसे अनदेखा करने की गारंटी दी जाती है।
तो यह आप NSButton
उपवर्ग की जरूरत का मतलब है (या जो भी NSView
उपवर्ग आप उपयोग करना चाहते हैं) और resetCursorRects
ओवरराइड पूरे दृश्य की bounds
के लिए addCursorRect:cursor:
कॉल करने के लिए।
पूरी तरह से मेरे लिए काम किया है, धन्यवाद। मैंने एनएसटीक्स्टफाल्ड उप-वर्गीकृत किया है। –
मैं इस अद्यतन पर जो भी ठोकर खाता है उसके लिए एक अद्यतन उत्तर में फेंकना चाहता हूं।
मुझे पता चला कि जब मैंने बैरी के उत्तर में ऐप्पल क्यू & ए द्वारा निर्दिष्ट समाधान का प्रयास किया था, तो क्लिक किए जाने पर मेरे लेबल लिंक का टेक्स्ट कम हो जाएगा। कुछ डीबगिंग के बाद, मुझे पता चला कि ऐप्पल के आलेख पर नमूना कोड एक नई विशेषता वाली स्ट्रिंग सेट कर रहा था, लेकिन लेबल नियंत्रण पर किसी भी मूल विशेषता को शुरू करने के लिए नहीं था। समाधान केवल लेबल की मूल विशेषता वाली स्ट्रिंग की प्रतिलिपि से शुरू करना है, नई हाइपरलिंक गुण जोड़ें, और उसके बाद लेबल को अपडेट करें।
मैंने एक साधारण सहायक फ़ंक्शन बनाया है जो एक NSTextField लेबल को हाइपरलिंक में बदल देता है। यह मूल रूप से NSAttributeString में श्रेणी एक्सटेंशन जोड़ने की आवश्यकता के बिना ऐप्पल के पृष्ठ पर समाधान को समेकित करता है।
// Converts an otherwise plain NSTextField label into a hyperlink
-(void)updateControl:(NSTextField*)control withHyperlink:(NSString*)strURL
{
// both are needed, otherwise hyperlink won't accept mousedown
[control setAllowsEditingTextAttributes: YES];
[control setSelectable: YES];
NSURL* url = [NSURL URLWithString:strURL];
NSAttributedString* attrString = [control attributedStringValue];
NSMutableAttributedString* attr = [[NSMutableAttributedString alloc] initWithAttributedString:attrString];
NSRange range = NSMakeRange(0, [attr length]);
[attr addAttribute:NSLinkAttributeName value:url range:range];
[attr addAttribute:NSForegroundColorAttributeName value:[NSColor blueColor] range:range ];
[attr addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:range];
[control setAttributedStringValue:attr];
}
और फिर यह आह्वान करने के लिए, कुछ समय जब खिड़की initializes NSTextField और यूआरएल स्ट्रिंग में पारित:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[self updateControl:_label withHyperlink:@"http://www.stackoverflow.com"];
}
- 1. हाइपरलिंक
- 2. हाइपरलिंक
- 3. हाइपरलिंक
- 4. हाइपरलिंक
- 5. कैसे हाइपरलिंक
- 6. हाइपरलिंक बनाम बटन
- 7. xul: केवल हाइपरलिंक
- 8. uitextview हाइपरलिंक रंग बदलें
- 9. डेटाग्रिड व्यू में हाइपरलिंक
- 10. एएसपी.NET ऐप एक हाइपरलिंक
- 11. एंड्रॉइड में हाइपरलिंक
- 12. एचटीएमएल इसे एक हाइपरलिंक
- 13. एक्सेल हाइपरलिंक द्रव्यमान अद्यतन
- 14. लेबल हाइपरलिंक ग्राफ़विज़
- 15. क्यूएमएल टेक्स्ट तत्व हाइपरलिंक
- 16. आईफोन कोको हाइपरलिंक
- 17. जीडब्ल्यूटी में सरल हाइपरलिंक?
- 18. हाइपरलिंक निकालें लेकिन टेक्स्ट रखें?
- 19. टिंकर टेक्स्ट विजेट में हाइपरलिंक?
- 20. Winforms में हाइपरलिंक सेल DataGridView
- 21. टेक्स्टबॉक्स नियंत्रण में हाइपरलिंक बनाएं
- 22. हाइपरलिंक पर क्लिक किए जाने पर अभिभावक कंटेनर पर क्लिक करें, जब हाइपरलिंक
- 23. mailto हाइपरलिंक है कि शरीर में हाइपरलिंक के साथ दृष्टिकोण में खुलेगा बनाने
- 24. एएसपी का उपयोग क्यों करें: हाइपरलिंक
- 25. छवि और पाठ के साथ एचटीएमएल हाइपरलिंक
- 26. Google स्प्रेडशीट हाइपरलिंक एक विशिष्ट शीट
- 27. एक्सएएमएल में एक साधारण हाइपरलिंक कैसे बनाएं?
- 28. पाठ संपादक और पाठ-फ़ाइल-आधारित हाइपरलिंक
- 29. हाइपरलिंक में window.location का उपयोग क्यों करें?
- 30. एएसपी.नेट एमवीसी एचटीएमएल। एक्शनलिंक हाइपरलिंक रंग
इस ऐप्पल टेक नोट के साथ एकमात्र मुद्दा यह है कि माउस कर्सर अभी भी माउस पर आई-बीम टेक्स्ट एंट्री स्टाइल कर्सर में बदल जाता है। –
एक और मुद्दा यह है कि लिंक पर क्लिक करने से सिस्टम डिफ़ॉल्ट में NSTextField का फ़ॉन्ट बदल जाता है। निम्नलिखित फ़ील्ड जो टेक्स्ट फ़ील्ड के फ़ॉन्ट को प्राप्त करने के लिए पाठ को मजबूर कर मेरे लिए गड़बड़ कर रहे हैं: '[attString addAttribute: NSFontAttributeName मान: [लेबल फ़ॉन्ट] रेंज: एनएसएमकेरेंज (0, [एटस्ट्रिंग लम्बाई])]; ' –