我正在使用界面构建器来设置窗口及其功能,所以awakeFromNib中没有任何内容,除了这个:
[[self.window contentView] setWantsLayer:YES]; CALayer *layer = [[self.window contentView] layer]; CGColorRef lightGray = CGColorCreateGenericGray(0.93,1.0); [layer setBackgroundColor:lightGray]; CGColorRelease(lightGray);
但是,textField的焦点环在textField的边界之外是不可见的.
带图层:
没有图层:
我认为这个显示问题比这更大,但我找不到这个问题的例子,(和解决方案).
任何人?
解决方法
从理论上讲,可以使用文本字段的“图层”框架,并添加一些填充以使聚焦环完全显示.但是,我刚试过这个,似乎至少对于NSTextField来说,它不会在一个改变的帧内整齐地绘制.不过尝试一下 – 我没有长时间大惊小怪. (聚焦环在每个方向上从帧中伸出4个像素.)
就像一个注释,你在技术上打破了层支持的规则,这可能是你遇到困难的部分原因.从NSView setWantsLayer:
docs:
When using layer-backed views you should never interact directly with the layer.
您正在使用图层支持的视图并更改其背景.您可以通过制作自己的图层来解决这个问题,但是:
When using a layer-hosting view you should not rely on the view for drawing,nor should you add subviews to the layer-hosting view.
它排除了在视图中放置文本字段.
(如果需要,请参阅此SO问题:Difference Between Layer-Backed and Layer-Hosting Views?)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。