Cocoa 禁止APP多重启动

本文介绍了一种在应用启动时防止多个实例运行的方法。通过检查是否有其他实例正在运行来决定当前实例是否继续运行,若已有实例运行,则弹出提示并退出当前实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动时阻止多开

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    [self.window setIsVisible:NO];
    [AppDelegate deduplicateRunningInstances];
    [self.window setIsVisible:YES];
}

具体实现

+ (void)deduplicateRunningInstances {
    if ([[NSRunningApplication runningApplicationsWithBundleIdentifier:[[NSBundle mainBundle] bundleIdentifier]] count] > 1) {
        // deprecated
        //        [[NSAlert alertWithMessageText:[NSString stringWithFormat:@"Another copy of %@ is already running.", [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleNameKey]]
        //                         defaultButton:nil alternateButton:nil otherButton:nil informativeTextWithFormat:@"This copy will now quit."] runModal];
        NSAlert *alert = [[NSAlert alloc] init];
        [alert setMessageText:[NSString stringWithFormat:@"Another copy of %@ is already running.",[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleNameKey]]];
        [alert setInformativeText:@"This copy will now quit."];
        [alert runModal];

        [NSApp terminate:nil];
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值