【问题标题】:Text Field rendering文本字段渲染
【发布时间】:2011-08-11 13:20:25
【问题描述】:

我正在尝试使用 Interface Builder (XCode 4) 构建一个非常简单的NSTextField,但是使用默认值的渲染真的很奇怪:

我唯一更改的设置是边框样式:

我的问题:

如何像在 Safari 中一样显示“方形但有圆角”的整洁文本字段:

如何删除“overflow:hidden”(对于 CSS 描述感到抱歉)这会影响焦点?

我应该设计自己的基于图像的组件吗?

谢谢!

【问题讨论】:

    标签: cocoa xcode macos interface-builder xcode4


    【解决方案1】:

    顶部是NSSearchField,专为过滤/搜索而设计。

    对焦环被切断的原因很可能是因为您将它放在盒子内或与另一个物体重叠。不要那样做。

    没有标准的圆角(与圆角相反)文本字段;如果你想要一个,你需要自己继承NSTextField,或者等待标准文本字段有圆角的Lion。

    【讨论】:

    • 这是一个圆角样式的 NSTextField(我编辑了我的问题)。没有重叠的物体,它直接在窗户上。感谢“狮子圆角”的建议!
    • 好的。好吧,在这种情况下,除了搜索之外不要使用那种风格。我没有 Xcode 4,所以它可能只是 IB 中的显示工件;尝试运行您的应用,看看对焦环是否仍然被切断。
    • 我认为这是一个错误,因为我前段时间也遇到过同样的问题。
    • 更新:Lion 好像没有圆角文本字段?
    【解决方案2】:

    圆角矩形文本字段非常简单,不需要子类化控件。相反,您可以简单地覆盖控件的背景 CALayer 的绘制方式。

    选择方角字段形状,将 QuartzCore 框架添加到您的项目中,然后#import <QuartzCore/QuartzCore.h>。在控制器的 viewDidLoad 方法中,您将修改文本字段层的 cornerRadius 属性,例如:

    myTextField.layer.cornerRadius = 6.0;
    

    噗,圆角矩形文本字段!

    【讨论】:

    • 这是在 Mac 上 - 支持层的控件是可选的,我认为它们无论如何都不会做你想做的事。
    • @Nicholas 啊,错过了标签,我的错。这与 Cocoa Touch 中的 UITextField 完全一样。
    【解决方案3】:

    我想我找到了正是您正在寻找的东西。这是它的样子:

    它叫做 SSTextField。在此处下载子类:http://cocoatricks.com/2010/06/a-better-looking-text-field/

    【讨论】:

      猜你喜欢
      • 2011-09-15
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      相关资源
      最近更新 更多