【问题标题】:LibStatusBar icon disappears on 3rd-party app launchLibStatusBar 图标在第 3 方应用程序启动时消失
【发布时间】:2013-01-25 08:09:03
【问题描述】:

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

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 README 文件中建议的方法

[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...

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

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

全部在Tweak.xm。 问题也发生在iOS7

【问题讨论】:

    标签: ios ios7 jailbreak cydia libstatusbar


    【解决方案1】:

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

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

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多