Установка текста NSTextField программно - PullRequest
0 голосов
/ 28 июля 2011

У меня есть графический интерфейс на IB (Xcode 4).
Он имеет поле статического текста, связанное с NSTextField. После прочтения информации из XML-файла он должен изменить текст на тот, который приходит из XML

.h выглядит следующим образом:

IBOutlet NSTextField * DataBaseLocation;

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 ]

1 голос
/ 29 июля 2011

Нашел ответ.

Мне нужно было инициализировать NSXMLDocument с NSXMLDocumentTidyXML, например:

NSXMLDocument* doc = [[NSXMLDocument alloc] initWithContentsOfURL: [NSURL fileURLWithPath:input] options:NSXMLDocumentTidyXML error:NULL];
0 голосов
/ 29 июля 2011

Вы должны распечатать DBLocationString вместо DBLoc, чтобы убедиться, что он не пустой или в каком-то поврежденном формате, который нельзя передать как строковое значение и перейти оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...