在10.10 Yosemite中禁用/自定义NSPopUpButton动画

Bry*_*yan 2 macos cocoa objective-c appkit nspopupbutton

语境:

在OS 10.10中,Apple为各种控件添加了一些新的微妙动画.例如,当您选中一个复选框时,蓝色的"已检查"状态现在通过从复选框的中心向外扩展而不是突然切换到"已检查"图像来设置动画.

同样,当您打开NSPopUpButton并从菜单中选择一个项目时,菜单动画关闭,所选项目显示为"放大"popUpButton.

问题:

我已经定制了NSPopUpButtons,它们的绘制方式与默认的NSPopUpButton不同:

在此输入图像描述

当我在弹出菜单中选择一个项目时,10.10中的新动画会在动画显示(蓝色右侧等)时简要显示系统默认的popUpButton样式.

这是正在进行的动画的屏幕截图,显示系统默认的popUpButton动画.(后面的深灰色矩形是我的自定义NSPopUpButton的"按下"状态):

在此输入图像描述

我需要的

通过自定义控件,这个动画显然看起来很糟糕 有没有办法禁用它或自定义它?我一直找不到.

Mar*_*rds 6

关闭Interface Builder中的Bordered属性似乎可以解决问题.

在此输入图像描述

这是Bordered on和Bordered off的比较.

在此输入图像描述

请注意,Bordered属性在默认情况下显示为关闭状态.我只需要检查然后取消选中它以禁用它.

  • 注意:如果您使用此方法,请准备一堆诅咒.关闭-isBordered将导致AppKit删除popUpButton的帧高度.在"小"尺寸,按钮从22px高到18px高.这搞砸了所有自定义绘图....有几天我只想排队每个Cocoa工程师并将它们直接打在脸上. (2认同)