gpt4 book ai didi

objective-c - 如何防止其他应用程序更改我的 NSWindow 框架

转载 作者:行者123 更新时间:2023-12-03 17:48:58 24 4
gpt4 key购买 nike

我正在实现一个具有自己的捕捉行为的 NSWindow,以及与标准窗口略有不同的其他功能集。

使用BetterSnapTool等辅助软件时,将NSWindow拖到边缘会触发BetterSnapTool的捕捉,从而干扰我的NSWindow的捕捉。

如何防止其他应用程序(例如 BetterSnapTool)尝试修改我的 NSWindow 框架?

最佳答案

我想出了一个解决方案。它更多的是针对此特定场景的定制解决方案,但希望对其他人有用。

为了防止 BetterSnapTool 和其他人在您移动 NSWindow 时修改它的框架,您可以防止在用户拖动窗口时调整窗口大小,然后在移动完成后重置 mask 完毕。

处理通知NSWindowWillMoveNotification时,您可以从NSWindow的样式掩码中删除NSResizableWindowMask:

self.styleMask &= ~NSResizableWindowMask;

然后,在通知NSWindowDidMoveNotification的处理程序上,您可以恢复样式掩码。

self.styleMask |= NSResizableWindowMask;

具体的实现可能会有所不同,具体取决于您的窗口拖动行为的自定义程度。就我而言,我根据鼠标事件自定义拖动行为,并修改右侧 mouseDownmouseUp 事件上的窗口掩码。

关于objective-c - 如何防止其他应用程序更改我的 NSWindow 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33768076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com