NSSearchfield的内容未对齐

时间:2013-11-18 17:00:44

标签: macos cocoa nsview nssearchfield

自升级到10.9 Mavericks以来,我注意到所有NSSearchfield实例的内容都未对齐:放大镜图标,文本字段本身和清除按钮都向下移动了一点。

任何想法可能是什么原因?

enter image description here

1 个答案:

答案 0 :(得分:0)

我暂时可以通过继承NSSearchField并选择自定义类作为单元类来修复它:

+ (void) load {
    [super load];
    [self setCellClass:[RMSearchFieldCell class]];
}

RMSearchFieldCell通过覆盖searchTextRectForBounds:searchButtonRectForBounds:cancelButtonRectForBounds:方法来移动单元格的原点+1:

- (NSRect) cancelButtonRectForBounds:(NSRect)rect {
    NSRect superRect = [super cancelButtonRectForBounds:rect];
    superRect.origin.y -=1;
    return superRect;
}

然而,这不是优雅的做法,我仍然在寻找错位的原因。