[ios] 타사 앱 실행시 LibStatusBar 아이콘이 사라짐

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합니다.



답변

libstatusbar를 사용한 지 오래되었습니다.하지만 LSStatusBarItem릴리스되지 않았 음을 확실히 확신한다면 Springboard 또는 다른 앱에 의해 숨겨져있을 수 있습니다. icon.visible = YES명시 적으로 설정하십시오 . 을 호출 하여 명시 적으로 설정 timeHidden하는 LSStatusBarServer것을 고려할 수도 있습니다 .NO[item setHidesTime:NO]

또한 아이콘을 변경하지 않으면 icon.manualUpdate = NO .

참고 문헌 :


답변