【问题标题】:Cannot remove border of UITextField dynamically无法动态删除 UITextField 的边框
【发布时间】:2012-07-03 21:20:43
【问题描述】:

我想动态移除 UITextField 的边框。

我试过[stringTextField setBorderStyle:UITextBorderStyleNone];

但是什么也没发生。有什么想法吗?

【问题讨论】:

  • 当你调用它时,你是否有可能不在主线程上?如果是网络回调或其他异步方法,则需要dispatch_async() 到主队列。

标签: ios uitextfield


【解决方案1】:

发生这种情况时,TextField 是否已经显示在视图中?如果是这样,您(可能)需要执行以下操作:

[stringTextField setBorderStyle:UITextBorderStyleNone];
[stringTextField setNeedsDisplay];

为了让视图重绘TextField,无边框。请注意,不能保证系统会立即重绘textField。您正在向系统表明您希望重新绘制该字段。

【讨论】:

  • 我照你说的做了。如果我做 UITextBorderStyleRoundedRect,没关系。但是如果我写 UITextBorderStyleNone,什么都不会发生
  • 其实对于UITextBorderStyleRoundedRect,不需要setNeedsDisplay。
【解决方案2】:

使用现有的 UITextField 我发现这可行:

[textField setEnabled:NO];
[textField setBorderStyle:UITextBorderStyleNone];

虽然没有(边框仍然在视图中):

[textField setBorderStyle:UITextBorderStyleNone];
[textField setEnabled:NO];

【讨论】:

  • 花了 45 分钟才让一切正常。很奇怪。
【解决方案3】:

试试这个。

textField.borderStyle = UITextBorderStyleRoundedRect;
textField.borderStyle = UITextBorderStyleNone;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-22
    • 2020-02-25
    • 1970-01-01
    • 2018-05-24
    • 2018-06-13
    • 2012-05-23
    • 1970-01-01
    • 2013-04-19
    相关资源
    最近更新 更多