為什么我手動創建的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 任務欄中的圖標沒了