首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >LibStatusBar图标在第三方应用程序启动时消失

LibStatusBar图标在第三方应用程序启动时消失
EN

Stack Overflow用户
提问于 2013-02-10 05:01:21
回答 1查看 2.8K关注 0票数 152

我为Cydia写了一个调整,它在状态栏上添加了一个图标。它可以在主屏幕上正常工作,当SpringBoard启动时,如果应用程序已经启动,它也可以正常工作,但是,如果一个应用程序(如Facebook或Twitter)被(完全)关闭,并且图标正在显示,当启动应用程序时,它将导致图标消失。该图标是使用以下代码使用libStatusBar显示的:

代码语言:javascript
复制
if(icon) // if icon needs to be removed
{
    [icon release];
    icon = nil;
}

...

// add the icon to the status bar
icon = [[%c(LSStatusBarItem) alloc] initWithIdentifier:[NSString stringWithFormat:@"muteIconLablabla"] alignment:StatusBarAlignmentRight];
icon.imageName = [NSString stringWithFormat:@"Mute"];

我还尝试了使用libStatusBar自述文件中建议的方法

代码语言:javascript
复制
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...

我尝试覆盖-(id)init并更新那里的图标,但结果相同。

上面显示的代码是从static void函数调用的。此函数被多次调用,例如从%hook SpringBoard-(void)ringerChanged:(int)changed下的-(void)applicationDidFinishLaunching:(id)application调用

都在Tweak.xm内部。这个问题在iOS7中也会发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-21 22:22:07

我使用libstatusbar已经有一段时间了,但如果你绝对确定LSStatusBarItem没有发布,它可能被Springboard或其他应用程序隐藏了。考虑显式设置icon.visible = YES。您可能还需要考虑通过调用[item setHidesTime:NO]LSStatusBarServer上的timeHidden显式设置为NO

此外,如果您没有对图标进行任何更改,请设置icon.manualUpdate = NO

参考文献:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14791556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档