【问题标题】:NSTextField not correctly refreshing after loosing focusNSTextField 失去焦点后无法正确刷新
【发布时间】:2013-12-02 13:53:15
【问题描述】:

我的程序的 NSTextfield 有点问题。
当我选择它们时,它们会获得聚焦环或变暗(如果聚焦环被禁用),但如果我取消选择它们,它们将不会正确重绘。

Image of this NSTextField problem

第一个文本字段已被选中,并且在取消选中后保持较深的颜色(此字段禁用对焦环)。
选择了第二个文本字段,但在取消选择后保留部分聚焦环(其他两个文本字段上也有部分聚焦环)。
根本没有选择第三个文本字段。

看起来边框没有正确刷新,在 NSTextField 上调用 needDisplay 似乎没有任何效果。

我只使用 NSTextfield(没有子类),我只更改字体大小(到 Lucida Grande 11)。我可能遗漏了一些明显的东西,但我无法找到导致此问题的原因。

-- 编辑--

我与这些文本字段相关的唯一代码是“已发送操作”,我只阅读这些字段的内容。
我尝试添加一个新的 NSTextfield,更改属性以匹配这些有问题的文本字段,它实际上工作得很好,除了我无法拥有与我相同的圆形边框。 Xcode 以一种方式显示它们,但是在构建和运行应用程序时,它与 Xcode 显示的不匹配。

在执行这些第一个 NSTextfields 时,我对包含它们的视图的 Xcode 设置进行了一些操作。
我将外观从 Inherited (Aqua) 更改为 Light Content,这改变了文本字段的外观,我认为我的视图现在混合了 Aqua/Light Content 外观。

会不会和那个外观设置有关?

谢谢, 托马斯

【问题讨论】:

  • 上传一些你已经实现的代码。
  • 用更多信息编辑了原始帖子。我想我可以通过完全重新创建我的视图来解决问题,但我很想知道问题的根源。谢谢。
  • 实际上,当将包含这些文本字段的视图的外观更改为轻量内容时,问题再次出现,所以要么我做错了要么使用外观时 NSTextfield 出现问题“轻量内容"。

标签: objective-c cocoa nstextfield


【解决方案1】:

我做了更多测试,创建了一个新的空项目。
“错误”很容易重现:
- 创建一个新的 Cocoa 应用程序
- 在主窗口的视图中添加一些 NSTextField
- 将窗口的外观更改为 Light Content
- 运行应用程序

所以我猜这实际上是一个错误,与我所做的没有真正的关系。

感谢您尝试帮助我。

【讨论】:

    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    相关资源
    最近更新 更多