【问题标题】:NSPopUpButton in NSToolbar such annoyingNSToolbar 中的 NSPopUpButton 太烦人了
【发布时间】:2014-01-11 21:14:49
【问题描述】:

问题解决了!

只需检查 NSWindow 的“统一标题和工具栏”选项,1pixel-down 问题就消失了!

要更改工具栏高度,只需选择工具栏项 - 自定义视图并在尺寸检查器中更改尺寸

===============================

如果您了解 Xcode 5s 布局,那么您应该认识到这一点:

我想为自己构建它。所以我在窗口中拖动了一个工具栏并添加了一个 NSPopUpButton。然后我将弹出按钮单元格样式更改为单选并关闭箭头。到目前为止一切顺利。

我注意到的第一件事是工具栏有不同的高度。有谁知道如何改变这种行为(不继承 NSToolbar)?

我注意到的第二个更烦人的事情是,如果我从弹出按钮中选择一个项目,则 NSMenuItem 的图像会向下移动 1 个像素。

编辑:Xcode NSMenuItems 不会向下移动 1 个像素

对那件事有什么建议吗?

【问题讨论】:

    标签: objective-c xcode macos cocoa


    【解决方案1】:

    很遗憾,NSToolbar 不能被子类化。这是一个写得很糟糕的类,试图变得非常“神奇”,所以它甚至不是 NSView 的子类——你根本无法控制它的绘制方式,它会创建一个私有视图。

    您可以设置它的“sizeMode”,但我假设您已经这样做了,但发现像素高不是您想要的。

    最简单的做法是在窗口顶部(文档内容上方)为小部件留出空间,并为您的按钮设置自动布局位置。 (由于其局限性,我多年来一直无法使用真正的 NSToolbar。)

    至于弹出菜单与按钮不对齐:菜单绘制的位置基本上是硬编码的,因此如果您使用 NSPopUpButton 不期望的按钮样式,那么菜单将偏移一些。

    如果您已经尝试取消选中默认样式 NSPopUpButton 上的“绘制边框”标志(一个新的调色板),有两种解决方案可供尝试:一种是继续尝试看起来正确的不同按钮样式你的眼睛,直到你找到一个没有偏移的。二是让 buttonStyle 为 NSPopUpButtons 做默认设置,但子类化 buttonCell 并让它不绘制边框(但仍然为它留出空间)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 2015-04-03
      • 2016-06-16
      • 1970-01-01
      相关资源
      最近更新 更多