L'icona di LibStatusBar scompare all'avvio dell'app di terze parti


152

Ho scritto una modifica per Cydia, aggiunge un'icona alla barra di stato. Funziona bene sulla schermata principale e quando viene avviato SpringBoard, anche se un'app è già stata avviata, funziona comunque bene, se un'app (come Facebook o Twitter) viene chiusa (completamente) e l'icona viene visualizzata, quando all'avvio dell'app, l'icona scomparirà. L'icona viene visualizzata usando libStatusBar usando questo codice:

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

Ho anche provato a utilizzare i metodi suggeriti nel libStatusBarfile README

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

Ho provato a sostituire -(id)inite aggiornare l'icona lì, ma lo stesso risultato.

Il codice mostrato sopra viene chiamato da una static voidfunzione. questa funzione viene richiamata più volte, ad esempio da -(void)applicationDidFinishLaunching:(id)application under %hook SpringBoarde-(void)ringerChanged:(int)changed

Tutto dentro Tweak.xm. Anche il problema si verifica iOS7.

Risposte:


2

È da un po 'che non uso Libstatusbar, ma se sei assolutamente sicuro che LSStatusBarItemnon verrà rilasciato, è possibile che sia nascosto da Springboard o da un'altra app. Prendi in considerazione l'impostazione icon.visible = YESesplicita. Si potrebbe anche prendere in considerazione l'impostazione timeHiddensu LSStatusBarServerper NOin modo esplicito chiamando [item setHidesTime:NO].

Inoltre, se non stai apportando modifiche all'icona, imposta icon.manualUpdate = NO.

Riferimenti:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.