6

我想在用户编辑它时突出显示一个 uitextfield,所以我将我的文本字段的边框样式默认设置为 UITextBorderStyleNone 并使用 uitextfields 代表如下:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    [textField setBorderStyle:UITextBorderStyleBezel];
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    [textField setBorderStyle:UITextBorderStyleNone];
}

设置并渲染了 Bezel 样式,但是当调用 endediting 时,不应用 none 样式。我尝试将 none 更改为另一个(例如圆角矩形),但那个确实渲染正确。

有人知道我怎样才能让它工作吗?

4

2 回答 2

10

是的,这是一个错误。无论如何,我已经通过使用以下代码解决了:

textField.borderStyle = UITextBorderStyleLine;
textField.borderStyle = UITextBorderStyleNone;

这不是一个非常漂亮的方法,但在 Apple 解决此问题之前它确实有效。

于 2013-01-29T09:12:52.757 回答
2

我也有这个问题。从我的测试来看,我似乎可以将它设置为除UITextBorderStyleNone.

至少对我有用的解决方法是禁用和重新启用文本字段,如下所示:

- (void)textFieldDidEndEditing:(UITextField *)textField {
    textField.enabled = NO;
    textField.borderStyle = UITextBorderStyleNone;
    textField.enabled = YES;
}

我真的不喜欢它,但它现在有效。

于 2015-09-09T10:47:09.287 回答