【问题标题】:Remove focus from the textfield从文本字段中移除焦点
【发布时间】:2014-02-25 12:47:00
【问题描述】:

我正在对文本字段执行两项操作: 1) 使用平移手势移动文本字段。 2)当用户点击它时在文本字段上书写。 担心的是我想一次执行一个操作,即当用户正在写作时,他不能滚动,反之亦然。

UIButton 动作名称---按钮 UIButton 出口名称---optionButton

- (IBAction)button:(id)sender
{
    if([_optionButton.titleLabel.text isEqualToString:@"SCROLL"])
    {
        NSLog(@"can scroll");
        NSLog(@"POINT=============%d   ",point);
        point=0;
        [_optionButton setTitle:@"WRITE" forState:UIControlStateNormal];
        textField1.enabled=NO;
    }
    else
    {        NSLog(@"can write");
        NSLog(@"POINT=============%d   ",point);
        point=1;
        [_optionButton setTitle:@"SCROLL" forState:UIControlStateNormal];
        textField1.enabled=YES;
    }
}

point变量控制整个操作,在开头设置为1。这意味着用户可以在开头写,如果他想写,他必须按下按钮。 我面临的问题是通过使用“textField1.enabled=NO”我无法滚动文本字段。 是否有任何功能可以让我从文本字段中移除焦点但可以滚动它。

【问题讨论】:

  • [文本域 resignFirstResponder];

标签: ios ios5 ios4 ios6 ios7


【解决方案1】:

您可以使用此代码来移除焦点(如评论之一所述),

[textField1 resignFirstResponder];

【讨论】:

    【解决方案2】:

    您也可以通过调用 [textField1 endEditing:YES] 来移除文本字段的焦点

    【讨论】:

      【解决方案3】:

      一个 UITextfield 只有 1 行,所以你不能滚动它。

      更新

      如果您想用手指移动 UITextfield,请在父视图中使用 UIPanGestureRecognizer 并在您的 uitextfield 中应用更改。

      【讨论】:

        【解决方案4】:

        您可以简单地按照以下步骤操作:

        在控制器中实现 UITextFieldDelegate

        class ClassName: UIViewController, UITextFieldDelegate {....}
        

        实现“textFieldShouldBeginEditing”功能

        class ClassName: UIViewController, UITextFieldDelegate {
        
           func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
            return false
           }
        
         }
        

        所以在 textFieldShouldBeginEditing 中返回 false 将根本不允许编辑到 UITextField。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-22
          • 1970-01-01
          • 2010-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多