Cocoa NSTextField和NSCOMBOX在Lion中的绘制方式不同

Cocoa NSTextField和NSCOMBOX在Lion中的绘制方式不同,cocoa,macos,user-interface,osx-lion,appkit,Cocoa,Macos,User Interface,Osx Lion,Appkit,我在Snow Leopard下开发了一个数据表单,它有NSTextField框和NSComboBox框,在Snow Leopard下看起来不错,但现在在Lion中,它们的绘制略有不同。我还有一些带有边框按钮的NSComboBox字段,还有一些带有无序按钮,这些字段也不匹配(虽然带有边框的按钮NSComboBox看起来与NSTextField很接近,但也不匹配 如何使所有内容协调匹配?我很乐意使用NSTextField像组合框一样自动完成,因为我还是隐藏了按钮 无边框的NSComboBox左侧,N

我在Snow Leopard下开发了一个数据表单,它有
NSTextField
框和
NSComboBox
框,在Snow Leopard下看起来不错,但现在在Lion中,它们的绘制略有不同。我还有一些带有边框按钮的
NSComboBox
字段,还有一些带有无序按钮,这些字段也不匹配(虽然带有边框的按钮
NSComboBox
看起来与
NSTextField
很接近,但也不匹配

如何使所有内容协调匹配?我很乐意使用
NSTextField
像组合框一样自动完成,因为我还是隐藏了按钮

无边框的
NSComboBox
左侧,
NSTextField
右侧(不同的上边缘):

带边框的
NSComboBox左侧,
NSTextField`右侧(不同高度):


我最终用
NSTextField
控件替换了无边框的组合框(我一直在隐藏按钮),方法如下:

我稍微修改了一下:

- (void)controlTextDidChange:(NSNotification *)obj {
    if (!isAutoCompleting) {
        isAutoCompleting = YES;
        [[[obj userInfo] objectForKey:@"NSFieldEditor"] complete:nil];
        isAutoCompleting = NO;
    }
}

当我想让
NSComboBox
按钮可见时,我会使用边框样式,这种样式非常匹配。

很高兴你发现我的答案很有用。你的赞成票(我猜)把它带回到我的注意中,我只是用更多的信息编辑了它。我发现有必要保留的不仅仅是一个标志——我当前的实现跟踪用户实际键入的最后一个字符串,并每次将其与字段编辑器的当前
字符串进行比较。祝你好运!@JoshCaswell:Correct assumption:-)