NSSearchfield的背景颜色不起作用

时间:2012-07-12 06:13:32

标签: objective-c nssearchfield

我有一个NSSearchField,我想改变它的背景颜色,但是我无法做到这一点我尝试了一些事情:

1)我尝试将DrawBackground设置为TRUE然后设置setBackgroundColor,但是我尝试通过代码或Nib设置DrawBackGround的值始终为False。(我不知道为什么?)

2)我尝试设置NSText的BackgroundColor,但它看起来并不好看,因为它没有覆盖整个NSSearchField,其中存在小搜索图标和取消图标的极端角落未着色。

3)我希望searchField具有它所在视图的颜色,所以我减少了searchField的alpha值,看起来不错但是文本的alpha值也减少了所以有没有办法让文本的alpha值永远保持1。

谢谢:)

2 个答案:

答案 0 :(得分:2)

如果您查看文档,Apple会阻止圆角矩形字段的背景颜色渲染:

"为了防止渲染不一致,对圆角边框文本字段禁用背景颜色渲染。"

https://developer.apple.com/library/prerelease/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTextField_Class/#//apple_ref/occ/instm/NSTextField/setDrawsBackground

答案 1 :(得分:0)

NSSearchField是NSTextField的扩展,NSTextField再次扩展NSView,

不确定,但可以制作自定义clas并覆盖drawRect函数并使用背景颜色进行绘制。