我正在编写状态菜单应用,其中一个大图像位于其中一个菜单项中。到目前为止,它一直运行良好 - 直到我尝试在状态菜单上设置最小宽度。
当我按⌥(选项)键时,要使用备用菜单项,其中包含图像的自定义视图会自行调整大小,如果没有最小宽度,则会调整大小。
这里有一些图片说明了持有before之前和之后的问题。灰色是一个自定义视图,应该拉伸以覆盖整个宽度。
只要菜单打开,即使释放⌥后问题仍然存在,但是当菜单关闭并重新打开直到再次按下⌥时,问题就会消失。
我的系统版本是Mac OS X v10.12.6(Sierra)。我对视图的自动调整掩码是这样的:
let autoresizingMask: NSView.AutoresizingMask = [.minXMargin, .minYMargin, .maxXMargin, .maxYMargin, .width, .height]
修改:如果我将视图置于菜单项的中心而不是拉伸(没有.width
和.height
),它仍会向左移动。
答案 0 :(得分:0)
我刚刚意识到解决方案非常简单。我只需要将自定义视图的框架宽度设置为状态菜单的最小宽度。
let r = NSRect(x: 0, y: 0, width: statusMenuMinWidth, height: h)