Cocoa NSTextField和NSCOMBOX在Lion中的绘制方式不同
我在Snow Leopard下开发了一个数据表单,它有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
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:-)