cocoa - 使用自动布局来定位 NSWindow

标签 cocoa nswindow autolayout

是否可以使用自动布局在屏幕上定位窗口?

我想设置约束来相对于 NSStatusItem 定位窗口。我希望窗口位于 NSStatusItem 下方的中心,但也不要部分位于屏幕外。因此,我需要相对于 NSStatusItem 居中的弱约束和保持距屏幕边缘最小距离的强约束。

我怎样才能做到这一点?

最佳答案

自动布局无法定位窗口。布局引擎针对每个窗口工作以在该窗口内布局 View 。

幸运的是,这个特殊的布局问题看起来并不太难用旧方法来完成。假设 NSStatusItem 适合的话,画出 NSStatusItem 下面的窗口框架。然后检查该框架是否与屏幕边缘相交。如果是,请将其向左微移,直到不再出现为止。

关于cocoa - 使用自动布局来定位 NSWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14307914/

相关文章:

cocoa - 在代码中更改 NSWindow View

ios - 使用自动布局时*仅一个*动画 block (UILabel) 的问题

cocoa - 沙盒应用程序中的 NSOpenPanel 忽略提供的目录 URL

ios - 如何使用 Core Animation 为脉动的蓝点制作动画?

macos - 在可编写脚本的 Mac 应用程序中支持 "styled text"(Cocoa Scripting)

objective-c - NSWindow 的动画 setContent

macos - NSView 有没有办法知道它的窗口何时关闭?

iOS以编程方式向约束添加乘数

ios - UITextView 仅在 iPad 上无法正确调整大小

objective-c - 大中央调度 : Queue vs Semaphore for controlling access to a data structure?