来自XML数据的NSStatusBar标题行为不正常

时间:2012-02-17 04:14:16

标签: objective-c cocoa nsxmlparser nsstatusitem nsstatusbar

我想要使用XMLparser中的字符串来“NSTatusBar”的“setTitle”。应用程序启动时,它会正确显示状态栏中的标题。但是,刷新XML数据时,标题会显示更新的字符串,但标题会在状态栏中向左移动。我希望在XML刷新后标题保持在同一位置。

造成这种情况的原因是什么?

在申请开始时:

enter image description here

刷新XML数据后

enter image description here

这里是我调用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];
    }
}

1 个答案:

答案 0 :(得分:1)

看起来是因为您要从statusItemWithLength创建项目 - 您不需要重新声明statusItem。尝试删除该行,只更改标题。