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

@interface CustomNSSearchField : NSSearchField
@end


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

尝试#1

@implementation CustomNSSearchField

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

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


完全没有视觉变化:



然后,我按照建议here进行了尝试:

尝试#2

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

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


结果是:



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

最佳答案

您必须重新绘制整个内容。
没有属性来专门更改NSSearchField的背景颜色。
看看这个例子:

Custom NSSearchField

编辑:

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

关于objective-c - 在NSSearchField子类的drawRect中设置背景色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13220567/

10-10 20:36