为什么手动创建的NSApp没有图标,接收不到键盘响应?

为什么我手动创建的NSApp没有图标,接收不到键盘相应?
那是因为没有设置ActivationPolicy(显示策略)

[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];

ActivationPolicy(应用显示策略)

一共有三种应用显示策略

1、NSApplicationActivationPolicyRegular 正规的

这种方式在使用 Info.plist 捆绑开发(bundled apps) 时是默认的选项。
效果: 任务栏(Dock) 上会显示应用的图标,菜单栏(menu bar)上会显示菜单等等所有正常操作。
可以被激活(接受键盘相应、接受鼠标相应)

PolicyRegular 正常模式
2、NSApplicationActivationPolicyAccessory 辅助的

没有任务栏(Dock)上的图标,没有菜单栏(menu bar)
可以被激活(接受键盘相应、接受鼠标相应)
在Info.plist中通过 LSUIElement=1 设置成该显示策略

PolicyAccessory 任务栏中的图标没了

3、NSApplicationActivationPolicyProhibited 禁止的

这种方式在 "生肉"开发(unbundled apps) 时是默认的选项。
没有任务栏(Dock)上的图标,没有菜单栏(menu bar),可能没有窗口(Window),有窗口该窗口也不会被激活。
不可以被激活(不接受键盘相应、接受鼠标相应)

PolicyProhibited 任务栏中的图标没了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,296评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,612评论 25 709
  • 问渠哪得清如许?为有源头活水来。 如果没有严谨认真的常规教学教研活动的开展,也就自然不会有教学成绩的一次次新突破,...
    落鸿孤鹜阅读 1,323评论 1 0
  • 妈妈告诉我,冬天是个坏孩子 跟我一样,喜欢玩闹 他使劲儿的摇着树枝 惊走了所有的小鸟 她说 你可不要跟他一样淘 妈...
    秋鹤阅读 281评论 0 1
  • 看着没啥事儿没啥事儿就会出事,一颗不懂得安住的心总是可以折腾出新的剧目,制造出新的问题去面对,我感受到的是一种无力...
    halfbook阅读 176评论 4 1