2

我有一个自定义子类NSSearchField,我想设置它的背景颜色。

@interface CustomNSSearchField : NSSearchField
@end

到目前为止,我已经尝试过:

尝试#1

@implementation CustomNSSearchField

- (void)drawRect:(NSRect)rect
{
    [super drawRect:rect];

    [self setDrawsBackground:YES];
    [self setBackgroundColor:[NSColor redColor]];
}

这导致根本没有视觉变化:

尝试 1

然后我按照这里的建议并尝试了:

尝试#2

- (void)drawRect:(NSRect)rect
{
    [super drawRect:rect];

    [[NSColor redColor] setFill];
    NSRectFill(rect);
}

结果是:

尝试 2

如何在边界内和搜索字段文本后面设置背景颜色

4

1 回答 1

1

你必须重新绘制整个东西。没有属性可以专门更改 NSSearchField 的背景颜色。看看这个例子:

自定义 NSSearchField

编辑:

还有什么值得指出的。您永远不应该覆盖控件的 drawRect 方法。您应该创建NSSearchFieldCell的子类。

于 2012-11-04T23:20:05.813 回答