从文本字段中删除焦点

时间:2014-02-25 12:47:01

标签: ios ios5 ios4 ios6 ios7

我在文本字段上执行两项操作: 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;
    }
}

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

4 个答案:

答案 0 :(得分:13)

您可以使用此代码删除焦点(如其中一条评论所述),

[textField1 resignFirstResponder];

答案 1 :(得分:1)

您还可以通过调用[textField1 endEditing:YES]

从文本字段中删除焦点

答案 2 :(得分:0)

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

更新

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

答案 3 :(得分:0)

您只需按照以下步骤操作:

将UITextFieldDelegate实施到您的控制器

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

实施" textFieldShouldBeginEditing"功能

class ClassName: UIViewController, UITextFieldDelegate {

   func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    return false
   }

 }

因此,在textFieldShouldBeginEditing中返回false将不允许编辑到UITextField。