我想要使用XMLparser中的字符串来“NSTatusBar”的“setTitle”。应用程序启动时,它会正确显示状态栏中的标题。但是,刷新XML数据时,标题会显示更新的字符串,但标题会在状态栏中向左移动。我希望在XML刷新后标题保持在同一位置。
造成这种情况的原因是什么?
在申请开始时:
刷新XML数据后
:
这里是我调用NSStatusBar的地方:
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqual:@"temp_f"]) {
[xmlTempF appendString:@"°F"];
[degreesF setStringValue:xmlTempF];
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[statusItem setTitle:xmlTempF];
[statusItem setHighlightMode:YES];
}
}
答案 0 :(得分:1)
看起来是因为您要从statusItemWithLength
创建新项目 - 您不需要重新声明statusItem
。尝试删除该行,只更改标题。