iphone - 允许 UITextField 字符在边界之外呈现

标签 iphone objective-c uitextfield drawrect

当我希望在其矩形内渲染 Å 等字符时,我遇到了 UITextField 的问题。

它的顶部被剪掉,使 Å 看起来像 A。

在某些情况下,我已经使用自定义 UITextField 解决了这个问题,如下所示:

- (void)drawTextInRect:(CGRect)rect {
    rect.origin.y = rect.origin.y+5;
    [super drawTextInRect:rect];
}

当文本正常显示时,它会起作用:

enter image description here

但是当您开始编辑文本时,就像不再应用drawTextInRect一样,并且字符的顶部再次消失。

像这样:

enter image description here

还有其他人有解决此问题的想法吗?

最佳答案

重写- (CGRect)textRectForBounds:(CGRect)bounds,而不是在所有情况下调整文本矩形。我怀疑 UITextField 在您不编辑文本时使用标签,而在您编辑文本时使用其他内容,并且其中只有一个特别调用 drawTextInRect:

关于iphone - 允许 UITextField 字符在边界之外呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13085702/

相关文章:

objective-c - 在 NSTableView 中选择和编辑一个新对象

ios - 如何在 Swift 2 中使用可选绑定(bind)

iphone - 使我的 iPhone 5 应用程序与 iPhone 4、iPod Touch、旧版 iPhone 兼容?

iphone - 为什么我的 Objective-C 类实例变量没有被设置?

iphone - iPhone中有系统级后台队列进程吗?

ios - UITextField 只有顶部和底部边框

iphone - 有没有办法确定何时在UITextField中输入语音文本?

iphone - @property/@synthesize 问题

objective-c - 如何将不间断空格插入 NSString 或 NSMutableAttributedString

iphone - 仪器内存泄漏与 ARC 混淆