在 Windows 平台中,窗口有一个名为 SWP_NOACTIVATE 的属性,该属性会导致窗口显示为非事件状态,并且在单击鼠标后,该窗口不会获得焦点。例如,对于可以通过鼠标单击键入的虚拟键盘来说,它很有用。 Mac 中的等效解决方案是什么?换句话说,我怎样才能实现一个在单击它时不会改变焦点的窗口? 谢谢。
最佳答案
您在这个问题上添加了“Cocoa”和“Carbon”标签,但由于没有人应该再做Carbon,所以我将尝试仅使用Cocoa来解决您的问题。
查看这两个 NSWindow
方法:canBecomeKeyWindow
和canBecomeMainWindow
。当您希望窗口不可聚焦时,请考虑对 NSWindow 进行子类化并为其中一个(或两个)返回“NO
”。
还有一个有趣的方法,称为 setIgnoresMouseEvents:
,这使得窗口对鼠标单击和事件“透明”。
关于objective-c - 如何在 Mac 操作系统中创建 "No Activate"窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10620106/