Macos NSMenu最小宽度:按⌥;使自定义视图忽略最小宽度

Macos NSMenu最小宽度:按⌥;使自定义视图忽略最小宽度,macos,cocoa,nsmenu,nsmenuitem,Macos,Cocoa,Nsmenu,Nsmenuitem,我正在编写一个状态菜单应用程序,其中一个菜单项中有一个大图像。到目前为止,它一直运行良好,直到我尝试在状态菜单上设置最小宽度 let r = NSRect(x: 0, y: 0, width: statusMenuMinWidth, height: h) 当我按下按钮时⌥ (Option)键,若要使用备用菜单项,则包含图像的自定义视图会将自身大小调整为没有最小宽度时的大小 这里有一些图片说明了这个问题,在按住之前和之后⌥. 灰色是一种自定义视图,应拉伸以覆盖整个宽度 只要菜单处于打开状态,

我正在编写一个状态菜单应用程序,其中一个菜单项中有一个大图像。到目前为止,它一直运行良好,直到我尝试在状态菜单上设置最小宽度

let r = NSRect(x: 0, y: 0, width: statusMenuMinWidth, height: h)
当我按下按钮时⌥ (Option)键,若要使用备用菜单项,则包含图像的自定义视图会将自身大小调整为没有最小宽度时的大小

这里有一些图片说明了这个问题,在按住之前和之后⌥. 灰色是一种自定义视图,应拉伸以覆盖整个宽度

只要菜单处于打开状态,即使在释放后,问题仍然存在⌥, 但当菜单关闭并重新打开时会消失,直到⌥ 再次按下按钮

我的系统版本是Mac OS X v10.12.6(Sierra)。我的视图自动调整大小掩码如下:

let autoresizingMask: NSView.AutoresizingMask = [.minXMargin, .minYMargin, .maxXMargin, .maxYMargin, .width, .height]

编辑:如果我使视图在菜单项中居中且不拉伸(没有
.width
.height
),它仍然会向左移动。

我刚刚意识到解决方案非常简单。我只需要将自定义视图的框架宽度设置为状态菜单的最小宽度

let r = NSRect(x: 0, y: 0, width: statusMenuMinWidth, height: h)

我刚刚意识到解决方案非常简单。我只需要将自定义视图的框架宽度设置为状态菜单的最小宽度

let r = NSRect(x: 0, y: 0, width: statusMenuMinWidth, height: h)

你什么时候在这里设置宽度?在
视图中加载
?每当⌥ 按键按下了吗?某些上下文将帮助其他用户。@Aᴄʜᴇʀᴏɴғᴀɪʟ:我在Interface Builder中设置了最小宽度。但是,只要在设置图幅时使用正确的值,宽度设置在何处并不重要。何时在此处设置宽度?在
视图中加载
?每当⌥ 按键按下了吗?某些上下文将帮助其他用户。@Aᴄʜᴇʀᴏɴғᴀɪʟ:我在Interface Builder中设置了最小宽度。但是,只要在设置图幅时使用正确的值,宽度设置在何处并不重要。