2011-04-03 10 views
19

मुझे NSTextView में टेक्स्ट ढूंढना होगा, और इसे एक फ़ाइल में सहेजना होगा। मैं बचत ठीक कर सकता हूँ। मैंने अब तक -stringValue और -textStorage का उपयोग किया है, लेकिन न तो काम किया है। जब मैंने -stringValue डाल दिया, तो उसने मुझे (शून्य) दिया, और जब मैंने -textStorage डाल दिया, तो उसने मुझे कुछ भी बहुत बड़ा हिस्सा नहीं दिया (जैसे अदृश्य पाठ का एक लंबा अनुच्छेद)।एनएसटीएक्स्टव्यू में टेक्स्ट कैसे ढूंढें?

मैं NSTextView से NSString में टेक्स्ट कैसे डाल सकता हूं?

उत्तर

35

NSString *text = [[myTextView textStorage] string]; 

प्रयास करें NSTextStorage NSMutableAttributedString जो NSAttributedString से विरासत से विरासत। उत्तरार्द्ध string विधि लागू करता है।

यह बहुत स्पष्ट नहीं है यदि आप दस्तावेज़ में NSTextView के उदाहरण विधियों को देखते हैं।

+0

कुछ भी नहीं हो रहा है। मुझे बस एक "अदृश्य अनुच्छेद" मिलता है। संपादित करें: मैंने इसे 'एनएसएलओजी' किया है, और यह मुझे सही स्ट्रिंग दिखाता है। मैंने जो फ़ाइल सहेजी है वह कुछ भी नहीं दिखाती है, लेकिन उस "बड़े अदृश्य अनुच्छेद" के बारे में मैंने बात की थी। अब क्या? – Justin

+0

डिस्क पर youbsaving कैसे हैं? क्या आपने एन्कोडिंग के रूप में utf8 को आजमाया है? –

+0

हां, मैंने एन्कोडिंग के रूप में utf8 को आजमाया है। – Justin

3

इस प्रयास करें:

[myTextView string]; 

आप एक फ़ाइल में TextView stringValue लिखने के लिए कुछ इस तरह की कोशिश संघर्ष कर रहे हैं, तो:

[[myTextView string] writeToFile:@"someFile" atomically:YES encoding:NSUnicodeStringEncoding error:&error]; 

आशा इस मदद करता है!

+0

मैंने कोशिश की है। मुझे लगता है कि मैंने कहीं और गलती की है, लेकिन मैं ऐसा कुछ भी नहीं सोच सकता जो इसका कारण बन सके। संपादित करें: मैंने अभी एक त्वरित स्कैन किया है और मुझे समस्या मिली है। मैं कई अलग-अलग चीजों को बचा रहा हूं, और मैं अपने '-स्ट्रिंगविथफॉर्मैट' अनुभाग में "% @" भूल गया। – Justin

0

इस प्रश्न के साथ किसी और के लिए सभी जानकारी संकलित करने के लिए, मैं अपने स्वयं के प्रश्न का उत्तर दे रहा हूं। अगर मुझे ऐसा करने की अनुमति नहीं है, तो कृपया मुझे बताएं।

कोड वास्तव में बेहद सरल है।

Files.h

#import <Cocoa/Cocoa.h> 

@interface Files : NSObject { 
    IBOutlet id dataToSave; 
} 

- (IBAction) saveData: (id) sender; 

Files.m

@implementation Files 

- (IBAction) saveData: (id) sender; { 
    NSString *text = [[dataToSave textStorage] string]; 
    NSLog(@"%@", text); 
    [text writeToFile:@"Users/justin/Desktop/test.txt atomically:YES encoding:NSUTF8StringEncoding error:NULL]; 
} 

इसके बजाय अन्य दो लोगों को है कि इस जवाब के लिए इस मतदान, मतदान का।

1

जब मान सेट, का उपयोग text.string = @"XXXX";
जब नहीं मिल पा STRING = [text.string copy];

उपयोग करें, क्योंकि अगर आप प्रतिलिपि भूल जाते हैं, mutableStringSTRING को वितरित कर दिया जाएगा। जब आप एक ही textview के साथ एकाधिक चीजों को संपादित करते हैं तो यह बग बढ़ाएगा।