Ikona LibStatusBar znika po uruchomieniu aplikacji innej firmy

152

Napisałem poprawkę dla Cydii, dodaje ikonę do paska stanu. Działa dobrze na ekranie głównym, a po uruchomieniu SpringBoard również, jeśli aplikacja jest już uruchomiona, działa dobrze, jednak jeśli aplikacja (taka jak Facebook lub Twitter) jest zamknięta (całkowicie) i ikona jest wyświetlana, kiedy Po uruchomieniu aplikacji ikona zniknie. Ikona jest wyświetlana przy użyciu libStatusBar przy użyciu tego kodu:

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"];

Próbowałem też skorzystać z metod sugerowanych w libStatusBarpliku README

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

Próbowałem zastąpić -(id)initi zaktualizować ikonę tam, ale ten sam wynik.

Kod pokazany powyżej jest wywoływany z static voidfunkcji. Ta funkcja jest wywoływana wielokrotnie, na przykład od -(void)applicationDidFinishLaunching:(id)application Under %hook SpringBoardi-(void)ringerChanged:(int)changed

Wszystko w środku Tweak.xm. Problem występuje iOS7również w.

La bla bla
źródło

Odpowiedzi:

2

Minęło trochę czasu, odkąd korzystałem z libstatusbar, ale jeśli jesteś absolutnie pewien, że LSStatusBarItemnie został wydany, możliwe, że został ukryty przez Springboard lub inną aplikację. Rozważ ustawienie icon.visible = YESjawne. Możesz również rozważyć jawne timeHiddenwłączenie LSStatusBarServerdo NOprzez wywołanie [item setHidesTime:NO].

Dodatkowo, jeśli nie wprowadzasz żadnych zmian w ikonie, ustaw icon.manualUpdate = NO.

Bibliografia:

JAL
źródło