我想用我的XMLparser中的一个字符串"setTitle“这个NSStatusBar。当应用程序启动时,它会在状态栏中正确显示标题。但是,当刷新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];
}
}发布于 2012-02-17 12:21:09
看起来这是因为您正在从statusItemWithLength创建一个新项目-您不应该需要重新声明statusItem。试着删除这一行,只更改标题即可。
https://stackoverflow.com/questions/9322802
复制相似问题