Biểu tượng LibStatusBar biến mất khi khởi chạy ứng dụng của bên thứ 3


152

Tôi đã viết một tinh chỉnh cho Cydia, nó thêm một biểu tượng vào thanh trạng thái. Nó hoạt động tốt trên màn hình chính và khi SpringBoard được khởi chạy, đồng thời, nếu một ứng dụng đã được khởi chạy thì nó vẫn hoạt động tốt, tuy nhiên, nếu một ứng dụng (như Facebook hoặc Twitter) bị đóng (hoàn toàn) và biểu tượng sẽ hiển thị, khi nào Khởi chạy ứng dụng, nó sẽ khiến biểu tượng biến mất. Biểu tượng được hiển thị bằng libStatusBar bằng mã này:

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

Tôi cũng đã thử sử dụng các phương thức được đề xuất trong libStatusBartệp README

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

Tôi đã thử ghi đè -(id)initvà cập nhật biểu tượng ở đó, nhưng kết quả tương tự.

Mã được hiển thị ở trên đang được gọi từ một static voidchức năng. chức năng này đang được gọi nhiều lần, ví dụ từ -(void)applicationDidFinishLaunching:(id)application bên dưới %hook SpringBoard-(void)ringerChanged:(int)changed

Tất cả bên trong Tweak.xm. Vấn đề xảy ra iOS7là tốt.

Câu trả lời:


2

Đã được một thời gian kể từ khi tôi sử dụng libstatusbar, nhưng nếu bạn chắc chắn rằng LSStatusBarItemnó không được phát hành, có thể nó đã bị Springboard hoặc một ứng dụng khác ẩn đi. Xem xét thiết lập icon.visible = YESrõ ràng. Bạn cũng có thể muốn xem xét việc thiết timeHiddentrên LSStatusBarServerđể NOmột cách rõ ràng bằng cách gọi [item setHidesTime:NO].

Ngoài ra, nếu bạn không thực hiện bất kỳ thay đổi nào đối với biểu tượng, hãy đặt icon.manualUpdate = NO.

Người giới thiệu:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.