gca*_*amp 14 macos cocoa nsmenuitem
我有一个NSMenuItem
我需要更新以显示进度(如时间机器与它的备份).问题是,当我设置一个新title
的,NSMenuItem
并title
没有改变.
事实上,当我关闭并重新打开菜单时,它会发生变化,但我想在用户查看时更新它.
我也尝试删除一个项目并重新插入它没有结果.
有什么指针吗?
Nic*_*ley 18
如果更新代码在菜单跟踪期间使用的运行循环模式下运行,这实际上无需额外工作.这是NSEventTrackingRunLoopMode
,但您可能只是想使用,NSRunLoopCommonModes
因此菜单项目标题在下拉菜单时是正确的.
这是一个菜单项的简单示例,foo
它计算自应用启动以来的秒数:
- (void)doStuff;
{
static int i = 0;
[foo setTitle:[NSString stringWithFormat:@"%d", ++i]];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification;
{
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:
[self methodSignatureForSelector:@selector(doStuff)]];
[invocation setTarget:self];
[invocation setSelector:@selector(doStuff)];
[[NSRunLoop mainRunLoop] addTimer:[NSTimer timerWithTimeInterval:1 invocation:invocation repeats:YES] forMode:NSRunLoopCommonModes];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1592 次 |
最近记录: |