サードパーティアプリの起動時にLibStatusBarアイコンが消える


152

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

libStatusBarREADMEファイルで提案された方法も使用してみました

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

そこで-(id)initアイコンを上書きして更新しようとしましたが、同じ結果が得られました。

上記のコードはstatic void関数から呼び出されています。この関数は、たとえば-(void)applicationDidFinishLaunching:(id)application 下から%hook SpringBoardや数回呼び出されています-(void)ringerChanged:(int)changed

すべての内部Tweak.xm。問題も発生しiOS7ます。

回答:


2

libstatusbarを使用してからしばらく経ちますがLSStatusBarItem、リリースされていないことが確実な場合は、Springboardまたは別のアプリによって非表示にされている可能性があります。icon.visible = YES明示的に設定することを検討してください。を呼び出して明示的にに設定timeHiddenするLSStatusBarServerことを検討することもできます。NO[item setHidesTime:NO]

さらに、アイコンに変更を加えない場合は、を設定しicon.manualUpdate = NOます。

参照:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.