如何始终将 NSPanel 保持在 NSScreen 可见框架内
我的应用程序中有一个浮动 NSPanel,用户可以使用鼠标移动它。我希望我的 NSPanel 在主屏幕中始终可见。我希望代码能够在所有侧面的屏幕边框内重新定位 NSPanel 的原始宽度和高度。
谢谢,
I have one floating NSPanel in my app, which user can move using mouse. I want my NSPanel to always visible within main screen. I want code to reposition my NSPanel with its original width and height within screen border in all the sides.
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
子类 NSPanel 并重写与框架相关的方法。 setFrameOrigin:、setFrame:display: 或许还有其他(请参阅 文档 以查找所有方法)。还有一个很有前途的
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
方法。Subclass NSPanel and override the frame-relative methods. setFrameOrigin:, setFrame:display: and maybe others (see the documentation to find out all the methods). There is also promising
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
method.