macOS关于Mac的理论知识iOS Developer

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

2017-08-16  本文已影响76人  STrawberryer

为什么我手动创建的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 任务栏中的图标没了
上一篇下一篇

猜你喜欢

热点阅读