NSTextField文本和背景颜色有/无焦点

mca*_*ter 5 cocoa nstextfield

我刚刚选择了NSTextField时遇到了重置颜色的问题.
我正在使用的方法是

- (void) setBackgroundColor:(NSColor *)aColor 
- (void) setTextColor:(NSColor *)aColor
Run Code Online (Sandbox Code Playgroud)

我发现当我点击NSTextField然后将焦点放在该文本字段中,然后尝试更改颜色时,颜色不会重置,直到焦点放在该文本字段之外.
当焦点不在NSTextField上时,颜色更改会起作用.

mca*_*ter 3

我发现无需访问第一响应者的简单解决方案是在更改颜色后将框重置为可编辑/不可编辑。

- (void) setEditable:(BOOL)flag
Run Code Online (Sandbox Code Playgroud)

通过将 flag 的值设置为 NO,然后在 2 个后续调用中设置为 YES(或者根据使用情况设置为 YES,然后设置为 NO),这似乎会从 NSTextField 中移除焦点,然后将其放回去,同时也会更新颜色。

希望这可以帮助。