从文本字段中移除焦点
Posted
技术标签:
【中文标题】从文本字段中移除焦点【英文标题】: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]; 【参考方案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。
【讨论】:
以上是关于从文本字段中移除焦点的主要内容,如果未能解决你的问题,请参考以下文章
如何从Tkinter,Python中的Text小部件中移除焦点