Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在10.10 Yosemite中禁用/自定义NSpoupButton动画 背景:_Objective C_Macos_Cocoa_Appkit_Nspopupbutton - Fatal编程技术网

Objective c 在10.10 Yosemite中禁用/自定义NSpoupButton动画 背景:

Objective c 在10.10 Yosemite中禁用/自定义NSpoupButton动画 背景:,objective-c,macos,cocoa,appkit,nspopupbutton,Objective C,Macos,Cocoa,Appkit,Nspopupbutton,在OS10.10中,苹果在各种控件中添加了一些新的精细动画。例如,选中复选框时,蓝色的“选中”状态现在通过从复选框中心向外展开而不是突然切换到“选中”图像来设置动画 类似地,当您打开一个NSPopUpButton并从菜单中选择一个项目时,菜单将动画关闭,选定的项目将显示为“放大”popUpButton 问题是: 我定制了不同于默认NSPoupButton的NSPoupButton按钮: 当我在弹出菜单中选择一个项目时,10.10中的新动画会在中设置动画时短暂显示系统默认的弹出按钮样式(蓝色右侧

在OS10.10中,苹果在各种控件中添加了一些新的精细动画。例如,选中复选框时,蓝色的“选中”状态现在通过从复选框中心向外展开而不是突然切换到“选中”图像来设置动画

类似地,当您打开一个NSPopUpButton并从菜单中选择一个项目时,菜单将动画关闭,选定的项目将显示为“放大”popUpButton

问题是: 我定制了不同于默认NSPoupButton的NSPoupButton按钮:

当我在弹出菜单中选择一个项目时,10.10中的新动画会在中设置动画时短暂显示系统默认的弹出按钮样式(蓝色右侧等)

下面是正在进行的动画的屏幕截图,显示了在中设置动画的系统默认弹出按钮。(后面的深灰色矩形是我的自定义NSpoupButton的“按下”状态):

我需要什么
使用自定义控件时,此动画显然看起来很糟糕。有没有办法禁用或自定义它?我一直找不到一个。

在Interface Builder中关闭带边框的属性似乎可以做到这一点

这是一个带边框和不带边框的比较


请注意,边界属性在默认情况下显示为关闭,而实际上处于打开状态。我只需勾选,然后取消勾选即可禁用它。

效果非常好!我不得不将一些自定义绘图代码移出-drawBezelWithFrame:inView(因为不再使用isBordered off调用该方法)。但这肯定解决了问题。谢谢注意:如果你使用这种方法,准备好一大堆咒骂。关闭-带边框将导致AppKit降低弹出按钮的帧高度。在“小”尺寸时,按钮从22px高变为18px高。这把所有的自定义绘图都搞糟了。。。有几天,我只想让每一位可可工程师排成一行,直接打在他们的脸上。最后,我直接编辑了*.xib XML,将我的按钮高度改回22px。真正重要的是,IB将其中一些设置为18px高,而当我更改时,其他设置为22px高——isBordered为false。