我正在使用位于 HUD 面板上的 NSOutlineView。我对其进行了配置,使其不绘制背景。一切看起来都很好,直到我双击编辑单元格。现场编辑器绘制其背景和聚焦环,这完全破坏了整个用户体验。
这就是我在 NSTextFieldCell 的子类中所做的:
- (NSText *)setUpFieldEditorAttributes:(NSText *)textObj
{
NSText *text = [super setUpFieldEditorAttributes:textObj];
[text setDrawsBackground:YES];
[text setBackgroundColor:[NSColor darkGrayColor]];
return text;
}
Run Code Online (Sandbox Code Playgroud)
如果我使用 setDrawsBackground:NO 它会被完全忽略并且我会得到一个白色背景。我的解决方案远不是很好,因为我无法触摸颜色的 alpha 分量(如果我这样做,字段编辑器将再次使用另一种颜色作为背景),但至少我没有得到白色背景。
我想知道这个问题是否有实际的解决方案。我必须提供我自己的现场编辑器吗?这值得么?
我想要的只是一个没有背景和聚焦环的字段编辑器,只有光标闪烁。
谢谢!
我有一个带有几个NSTextField控件的自定义视图,我想为其提供自定义自动完成功能,并且我已成功实现了使用NSTextFieldDelegate协议的所有控件.自动完成是全名或地名,具体取决于正在编辑的文本字段.
问题是自动完成几乎总是包含空格字符,因此如果用户键入的内容与建议相符,但又不想接受该建议,则当用户按下空格键时,字段编辑器将接受该建议. .我希望字段编辑器仅使用Tab键接受建议.
我理解这将涉及子类化NSTextView以提供自定义字段编辑器,Apple将其记录为可接受的方式,但是我不清楚我需要覆盖哪些方法以及重写的方法需要做什么,以便得到我想要的东西.
谁能建议如何实现这一目标?