如何在没有标题栏的情况下激活窗口

4

我可以发送消息makeKeyAndOrderFront:来使窗口变为活动状态。但是,如果我将此消息发送给没有标题栏的窗口,则它不会变为活动状态。是否有办法使没有标题栏的窗口变为活动状态?


“doesn't make it active” 是什么意思?另外,你在 Info.plist 中添加了什么特殊内容吗? - Peter Hosey
实际上,我怀疑没有标题栏的窗口无法被激活。因为当单击窗口时,窗口的正常行为是变为活动状态,也就是 UI 控件以明显的方式改变颜色,但是我无法在单击这个没有标题栏的窗口时使其变为活动状态。没有在 info.plist 中添加任何特殊内容。 - hollow7
1
我非常确定这不是问题,特别是因为一些自定义标题栏的窗口是作为无边框窗口完成的。我鼓励你继续探索NSWindow和NSPanel的方法,直到找到正确的设置组合。 - Peter Hosey
1个回答

4
您需要在您的NSWindow子类中重写-canBecomeKeyWindow以返回YES
根据文档:
如果此方法返回NO,则尝试将窗口设置为关键窗口将被放弃。如果窗口具有标题栏或调整大小栏,则NSWindow实现返回YES;否则返回NO。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接