我正在创建一个基于“测试”文档的应用程序,以了解有关它们如何工作的更多信息。我想加载一个我之前保存的数组。
- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
{
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSArray *array = [string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
documentTitle.stringValue = [array objectAtIndex:0];
// For testing
NSLog(@"%@", array);
}
我加载了文件并获取了数据。我将数据转换为 NSString。该文件有多行,每一行都有自己的值。第一行是文档标题。所以我创建了一个 NSArray,将每一行分别放在数组中。然后我将文档的第一行设置为 documentTitle 标签。出于测试目的,我也创建了一个 NSLog 函数。它必须记录数组。
问题是当我运行代码时,它根本没有做任何事情。documentTitle.stringValue 不会改变。但奇怪的是它确实记录了数组:
2015-09-22 16:57:40.098 DocBased Test[10765:277445]
(
"The awesome title!",
"This is a document!"
)
我在Document.h中声明了 documentTitle,如下所示:
#import <Cocoa/Cocoa.h>
@interface Document : NSDocument
{
IBOutlet NSTextField *documentTitle;
}
@end
如果你需要在 Xcode 中查看项目,这里有一个链接:链接。
有谁知道如何更改Document类中 documentTitle (或任何)标签的 stringValue ?