Swift 为什么NSTextField';s字段编辑器继承其文本颜色';当它';其他配置是什么?
我的Swift 为什么NSTextField';s字段编辑器继承其文本颜色';当它';其他配置是什么?,swift,cocoa,Swift,Cocoa,我的NSTextField的textColor为white且不可编辑。单击标签时,我将NSTextField设置为isEditable=true。再次单击标签会将其置于编辑模式。我有一个字段编辑器等 之前或编辑它看起来像这样: 我正在对我的NSTextField进行子类化,以便像这样配置该字段编辑器: override func becomeFirstResponder() -> Bool { let value = super.becomeFirstResponder()
NSTextField
的textColor
为white
且不可编辑。单击标签时,我将NSTextField
设置为isEditable=true
。再次单击标签会将其置于编辑模式。我有一个字段编辑器等
之前或编辑它看起来像这样:
我正在对我的NSTextField
进行子类化,以便像这样配置该字段编辑器:
override func becomeFirstResponder() -> Bool {
let value = super.becomeFirstResponder()
if value == false {
return value
}
if let fieldEditor = currentEditor() as? NSTextView {
fieldEditor.backgroundColor = NSColor.white
fieldEditor.drawsBackground = true
fieldEditor.textColor = NSColor.black
}
return value
}
您可以从上面的代码中看到,我正在将字段编辑器的textColor
设置为black
。当我进入编辑模式时,我得到了预期的行为:
到目前为止还不错。输入问题:任何新的击键都将反映为white
文本:
在下面的示例中,我突出显示了字段的内容,以显示白色文本:
所以看起来,即使我设置了fieldEditor.textColor=NSColor.black
并且我看到了黑色,字段编辑器还是在继承NSTextField
的文本颜色以进行新的输入
如果在编辑器配置中执行此操作,请记住这是在NSTextField子类中:
fieldEditor.backgroundColor = NSColor.white
fieldEditor.drawsBackground = true
fieldEditor.textColor = NSColor.black
textColor = NSColor.black // <-------
fieldEditor.backgroundColor=NSColor.white
fieldEditor.drawsBackground=true
fieldEditor.textColor=NSColor.black
textColor=NSColor.black//单元格在成为第一响应程序和设置字段编辑器属性后设置字段编辑器(NSTextView
)的键入属性。啊,因为它最后从单元格提取设置,所以它赢了。您的解释解释了该行为,以确保我想知道他们为什么允许您设置字段编辑器的textColor?这只是一个NSTextView,我想他们为什么不呢。由于字段编辑器是共享的,因此它们会提取单元格属性,使其与目标匹配是有意义的。您应该将其作为答案提交,这样我就可以接受它作为答案。单元格在成为第一响应者和设置字段编辑器属性后设置字段编辑器(NSTextView
)的键入属性。啊,因为它最后从单元格中提取设置,所以它获胜。您的解释解释了该行为,以确保我想知道他们为什么允许您设置字段编辑器的textColor?这只是一个NSTextView,我想他们为什么不呢。由于字段编辑器是共享的,因此它们会提取单元格属性,使其与目标匹配是有意义的。你应该把它作为答案提交,这样我就可以接受它作为答案。