以编程方式设置NSTextField的文本

时间:2011-07-28 17:07:35

标签: cocoa macos interface-builder

我有一个基于IB(Xcode 4)的GUI 它有一个连接到NSTextField的静态文本字段。从XML文件中读取信息之后,它应该将文本更改为来自XML的文本

.h如下:

IBOutlet NSTextField * DataBaseLocation;

.m

NSMutableArray* DBLoc = [[NSMutableArray alloc] initWithCapacity:1];
NSXMLElement* root  = [doc rootElement];
NSArray* DBarray = [root nodesForXPath:@"//DataBaseLocation" error:nil];
for(NSXMLElement* xmlElement in DBarray)
    [DBLoc addObject:[xmlElement stringValue]];

NSString * DBLocationString = [DBLoc objectAtIndex:0];
[DataBaseLocation setStringValue:DBLocationString];

NSLog(@"DBLoc: %@", DBLoc);

NSLog显示DBLoc具有正确的字符串,但文本字段为空且永远不会设置。

是的,我检查了IB中的连接。 有任何想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

找到答案。

我需要使用NSXMLDocument初始化NSXMLDocumentTidyXML,如:

NSXMLDocument* doc = [[NSXMLDocument alloc] initWithContentsOfURL: [NSURL fileURLWithPath:input] options:NSXMLDocumentTidyXML error:NULL];

答案 1 :(得分:0)

你应该打印出DBLocationString而不是DBLoc,以确保它不是空的,或者是某些损坏的格式,不能作为字符串值传递并从那里开始。