objective c - ¿Cómo encontrar el texto en un NSTextView?
objective-c cocoa (4)
Necesito encontrar el texto en un NSTextView
y guardarlo en un archivo. Puedo hacer el ahorro bien. He usado -stringValue
, y -textStorage
hasta ahora, pero ninguno ha funcionado. Cuando puse -stringValue
, solo me dio (nulo), y cuando puse -textStorage
, me dio una gran parte de la nada (como un largo párrafo de texto invisible).
¿Cómo puedo colocar el texto de un NSTextView
en una NSString
?
Con el fin de compilar toda la información para cualquier otra persona con esta pregunta, estoy respondiendo mi propia pregunta. Si no se me permite hacer esto, por favor dígame.
El código es realmente muy simple.
Archivos.h
#import <Cocoa/Cocoa.h>
@interface Files : NSObject {
IBOutlet id dataToSave;
}
- (IBAction) saveData: (id) sender;
Archivos.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];
}
En lugar de votar esto, vote por las otras dos personas que respondieron esto.
Prueba esto:
[myTextView string];
Si tiene problemas para escribir el textView stringValue en un archivo, intente algo como esto:
[[myTextView string] writeToFile:@"someFile" atomically:YES encoding:NSUnicodeStringEncoding error:&error];
¡Espero que esto ayude!
Tratar
NSString *text = [[myTextView textStorage] string];
El NSTextStorage hereda de NSMutableAttributedString que hereda de NSAttributedString . Este último implementa el método de string .
Esto no es demasiado obvio si solo observa los métodos de instancia de NSTextView en la documentación.
al establecer el valor, use text.string = @"XXXX";
al obtener el valor, use STRING = [text.string copy];
porque si olvidas la copia, mutableString
enviará a STRING
. Esto textview
errores cuando edites varias cosas con una sola vista de textview
.