【发布时间】:2013-05-14 16:22:12
【问题描述】:
我有两个 NSPopover,它们的设置完全相同(只是从 IB 链接自定义 NSView)。两者都可以正常弹出,但其中一个似乎将内容偏移了大约 20 像素。
这个 NSPopover (正确地)没有填充内容...
但是这个从骑行侧增加了大约 20 像素。
这是 IB 中列出的两个视图
如您所见,搜索栏应该固定在右侧,就像它是左侧一样,但由于某种原因它不是。起初我以为是约束问题,但在搞砸了一段时间后,我可以确认不是。
有什么线索吗?
编辑:决定子类化视图并填充它的矩形,得到了一些非常奇怪的结果!视图似乎是偏移的。我不知道这是为什么......
【问题讨论】:
-
我没有答案,但
appears to be padding the content on one side by about 20px.的评论似乎具有误导性。应用程序屏幕截图中的搜索栏与笔尖屏幕截图中的宽度完全相同。这表明问题在于它根本没有调整大小,而不是那里有右边距。 -
是的,这是我最初的猜测,但是在运行了这个小测试之后,我发现这确实是错误的。现在看起来好像内容视图偏移了大约 20px...
-
向自定义内容视图类的
setFrame:方法添加一些日志记录,并在您使用它时记录superview的框架。 -
@trojanfoe 好主意。从该测试看来,正确的视图设置为 x: 13 y: 13 的帧,其中不正确的视图设置为 x: 0 y: 0 是时候深入挖掘了!
-
好的问题解决了!我覆盖了 setFrame 属性,并强制它将 x 和 y 更改为 13、13。在此初始点之后调用 setFrame 无效,因此需要进行覆盖。谢谢大家!
标签: objective-c macos cocoa menubar nspopover