के अंत में स्थानांतरित करने का कारण बनता है मुझे सबक्लास अपने NSTextStorage
प्रतिनिधि के रूप में कार्य कर रहा है। कुछ मायनों NSTextStorage को संशोधित करने से प्रविष्टि बिंदु
- हाइलाइट पाठ और उसके बाद TextView का जवाब संलग्न: मैं 2 काम करने की कोशिश कर रहा हूँ।
मैं इसे दो अलग-अलग तरीकों से कर रहा हूं, दोनों - (void)textStorageWillProcessEditing:(NSNotification *)notification
प्रतिनिधि कॉलबैक द्वारा आमंत्रित किए गए हैं।
मैं सिंटैक्स को ठीक से हाइलाइट कर सकता हूं, लेकिन जब मेरा जवाब जोड़ने की बात आती है, प्रविष्टि बिंदु के अंत तक कूदता है और मुझे वास्तव में क्यों पता नहीं है। मेरे विधि का मूल्यांकन निम्न जैसा दिखाई देता:
NSString *result = ..;
NSRange lineRange = [[textStorage string] lineRangeForRange:[self selectedRange]];
NSString *line = [[textStorage string] substringWithRange:lineRange];
line = [self appendResult:result toLine:line]; // appends the answer
[textStorage replaceCharactersInRange:lineRange withString:line];
ऐसा करने से ठीक मेरी परिणाम में संलग्न कर देगा, लेकिन समस्या, के रूप में उल्लेख किया है, सम्मिलन बिंदु को समाप्त करने के कूदता है।
मैं कोशिश की है:
- उन रैपिंग ऊपर
[textStorage beginEditing]
और-endEditing
में कहता है। - पाठ संग्रहण को बदलने से पहले चयन श्रेणी (यानी, सम्मिलन बिंदु) सहेजना ताकि मैं इसे बाद में रीसेट कर सकूं, लेकिन कोई पासा नहीं।
क्या मैं यह सही कर रहा हूं? मैं इसे कम से कम हैकिश तरीके से करने की कोशिश कर रहा हूं, और मैं भी अनिश्चित हूं कि यह मेरी पार्सिंग/हाइलाइटिंग करने का आदर्श स्थान है। दस्तावेज़ मुझे विश्वास करने के लिए नेतृत्व करते हैं, लेकिन शायद यह गलत है।
लाइनफॉरेंज क्या है, मुझे दस्तावेज़ों में यह विधि नहीं मिली है? यदि आपका मतलब lineRangeForRange है, तो यह आपकी समस्या हो सकती है। क्या आप लाइन के अंत में, या अपने चयन के अंत में शामिल होने की कोशिश कर रहे हैं? – rdelmar
हाँ यह एक टाइपो है। – jbrennan
मेरे प्रश्न के दूसरे भाग के बारे में कैसे? यह स्पष्ट नहीं है कि आप अपना टेक्स्ट जोड़ने का प्रयास कर रहे हैं। जब आप कहते हैं कि प्रविष्टि बिंदु रेखा के अंत तक चलता है, तो क्या आपका मतलब आपके सम्मिलन या पहले के बाद होता है? – rdelmar