繁体   English   中英

NSStatusItem标题突出显示时未更新

[英]NSStatusItem title not updating when highlighted

我做了一个小应用程序,它在状态栏/菜单栏中显示CPU温度。 它工作正常,但突出显示时(当我单击它时)它停止完全更新。 当我单击其他地方(突出显示被删除)时,它又可以工作了。 有没有一种方法可以确保单击该应用程序后继续对其进行更新(突出显示模式)。

我正在使用NSTimer每5秒获取一次温度。 即使我删除setHighlight方法,如果我单击状态栏应用程序,该应用程序也会停止更新。

您应该为此使用NSInvocation。

NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[self methodSignatureForSelector:@selector(reload_Live_Data)]];
[invocation setTarget:self];
[invocation setSelector:@selector(reload_Live_Data)];

timer=[NSTimer timerWithTimeInterval:5 invocation: invocation repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

-(void) reload_Live_Data
{
    [_statusItem setTitle:@“xyz”];
    [_statusItem setIcon:image];
}

您可以使用线程中提到的解决方案如何将动画图标添加到OS X状态栏?

但是,您可以使用GCD而不是使用NSTimer。 您可以随时更新图像或标题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM