【问题标题】:UITExtField in not getting focus on tappingUITextField 没有专注于点击
【发布时间】:2013-09-23 03:11:05
【问题描述】:

我创建了一个UITextField的子类(TextFieldSubClass),下面是代码

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
   [UIMenuController sharedMenuController].menuVisible = NO;
//    if (action == @selector(paste:))
//        return YES;
//    if (action == @selector(select:))
//        return YES;
//    if (action == @selector(selectAll:))
//        return YES;
    return NO;
}

- (BOOL)canBecomeFirstResponder
{
    return  true;
}
- (CGRect)caretRectForPosition:(UITextPosition *)position
{

    return CGRectZero;
}

在其他类中,我在 XIB 上添加了一个文本字段,并在属性窗口中将文本字段类设置为 TextFieldSubClass

当我点击此文本字段时,它没有获得焦点,它的光标没有显示,但可以在其中输入 ext。

即使当我点击文本字段时,它的代表也不会被调用,但会为 UITextField 类型的其他文本字段调用代表

如何关注子类文本字段?

我创建了子类,因为我想在双击 uitextfield 时隐藏菜单项。菜单项被隐藏,但插入符号仍在显示。

如何隐藏插入符号(用于选择文本的蓝色矩形)?

【问题讨论】:

  • 您是否在例如 canBecomeFirstResponder 中设置了断点以检查它是否有效? (也:“返回真;”:S)
  • 您是否为 TextFieldSubClass 创建/指定了委托?
  • @DavidRönnqvist 是的,检查并返回 true
  • @Rohan 不,我还没有创建代表
  • @gtechtech 那么我认为您需要在使用它的 ViewController 中指定 TextFieldSubClass 的委托

标签: iphone objective-c ios6 uitextfield


【解决方案1】:

我认为如果你为 UITextField 设置委托并实现方法会更容易:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    textField.layer.borderColor = [UIColor colorWithWhite:0.768 alpha:1.000].CGColor;
    return YES;
}

您根据自己设置文本字段颜色。

【讨论】:

    【解决方案2】:

    隐藏光标的颜色设置这个。

    [[UITextField appearance] setTintColor:[UIColor redColor]];
    

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      • 2013-11-12
      • 2020-03-18
      • 1970-01-01
      • 2016-02-08
      相关资源
      最近更新 更多