mac开发--如何实现仿MAC端QQ的多开APP效果

栏目: IOS · 发布时间: 8年前

内容简介:mac开发--如何实现仿MAC端QQ的多开APP效果

现在QQ不是可以同时登录多个账号吗?怎么才能实现QQ这种效果,开启多个哪?下面我们就来探讨一下。

1、在Main.storyboard中的Main Menu里拖出一条线到AppDelegate.m里创建一个方法

mac开发--如何实现仿MAC端QQ的多开APP效果

2、然后实现点击方法:

- (IBAction)newApplication:(id)sender {
//获得本程序的.exec文件
NSString *executablePath = [[NSBundle mainBundle] executablePath];
//创建任务
NSTask *task = [[NSTask alloc] init];
//启动路径
task.launchPath = executablePath;
//启动
[task launch];
}

3、这个NSMenuItem的快捷键是command + N ,所以我们按下这个快捷键就能看到此App又开启了一个

mac开发--如何实现仿MAC端QQ的多开APP效果

4、然而正当我兴高采烈准备交差的时候,发现程序的沙盒权限打开之后,怎么也实现不了多开了。

比较了一下打开沙盒之前和之后的task,发现currentDirectoryPath值不一样了,可是怎么设置也没用。

最后折腾了半天,直接用/usr/bin/open的命令去实现:

mac开发--如何实现仿MAC端QQ的多开APP效果

5、所以你的程序是打开沙盒权限的,请使用以下方法实现多开app的效果:

- (IBAction)newApplication:(id)sender {
//获得本程序的路径
NSString *applicationPath = [[NSBundle mainBundle] bundlePath];
//创建任务
NSTask *task = [[NSTask alloc] init];
//启动路径
task.launchPath = @"/usr/bin/open";
//添加参数
task.arguments = @[@"-n", applicationPath];
//启动
[task launch];
}

以上所述就是小编给大家介绍的《mac开发--如何实现仿MAC端QQ的多开APP效果》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

Agile Web Development with Rails 4

Agile Web Development with Rails 4

Sam Ruby、Dave Thomas、David Heinemeier Hansson / Pragmatic Bookshelf / 2013-10-11 / USD 43.95

Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details. Tens of thousands of deve......一起来看看 《Agile Web Development with Rails 4》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码