简而言之:如何让UITextField框在用户第一次按键时移除所有内容?我不希望信息被删除,直到用户开始输入一些东西。即,在开始编辑时清除它是不够的。
长版本:我有三个UITextField循环(使用返回键并在“shouldReturn”方法中捕获按键。UITextField 中已有文本,如果用户未键入任何内容,而只是转到下一个 UITextField,则该值应保留(默认行为)。
但是我希望如果用户开始输入,它会首先自动清除文本。比如突出显示整个字段,然后键入任何内容都会删除字段,然后添加用户按键。
“编辑开始时清除”不好,因为文本会在字段中出现的光标上立即清除。这不是我们想要的。我想我可以在这里使用占位符,但这并不能作为默认值,而且我找不到默认值属性。突出显示和选择的属性在这方面也没有任何作用。
我要感谢人们的回答,我实现了这里描述的两种主要方法,并且都完美地工作。但后来我遇到了一个更简单,更好的答案,只涉及一行代码:)
在text Field的didStart inEdting方法中,放置[self.textFieldselectAll: self];
or[self.textFieldselectAll: nil];
我找到的原始答案是选择all:self
,但这显示了剪切/复制/粘贴菜单。如果发送的是nil
而不是self
,则不会显示菜单。
添加这一行代码会在输入文本字段时突出显示文本(从而给用户一个视觉提示),并且只在按下一个键时删除所有内容。
有一个委托方法叫做
textFieldDidBeginEditing:(UITextField*) tf{
tf.startedEdinting = YES;
}
textFeildDidEndEditing: (UITextField*) tf {
tf.startedEditing = NO;
}
将类别中的开始编辑添加到UITextField。
然后,如果值发生变化,请清除该字段:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (textField.startEditing){
textField.text = string;
} else {
textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
}
}
可以通过以下方式将该属性添加到 UITextField 类别:
h
@property (nonatomic, assign) BOOL startEditing;
m
@dynamic startEditing;
- (void) setStartEditing:(BOOL)startEditing_in{
NSNumber* num = [NSNumber numberWithBool:startEditing_in];
objc_setAssociatedObject(self, myConstant, num, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (BOOL) startEditing{
NSNumber* num = objc_getAssociatedObject(self, myConstant);
return [num boolValue];
}
在< code >中声明一个< code>BOOL变量。h文件。
BOOL clearField;
并实现委托方法,例如:
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
clearField = YES;
}
-(void)textFieldDidEndEditing:(UITextField *)textField
{
clearField = NO;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
clearField = NO;
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(clearField)
{
textField.text = @""
clearField = NO;
}
}
默认行为是字段中的提示文本在字段被聚焦时被擦除。这是当标记在字段中时。 是否可以配置文本字段,以便仅在用户开始键入时删除提示文本? 否则,我需要在每个文本字段旁边/上方添加一个标签,以描述其中的值。
问题内容: 用户停止键入时需要执行搜索。我知道我应该使用 setTimeout() 。但是使用 Reactjs我找不到它是如何工作的。 有人可以告诉我当用户停止键入几秒钟(假设为5)时如何调用方法(将处理Search)。我不知道该在哪里编写代码来检查用户是否停止键入。 我想在用户停止键入时调用sendToParent方法。 问题答案: 您可以按照以下方式使用您的代码, 另外,您需要在构造函数中绑定
我一直在研究清理用户输入的最有效方法。我的应用程序是一个简单的post请求,用于对用户进行身份验证。在网上我可以找到十几种不同的“最佳”方法。这些方法中有很多都使用不推荐的php函数,或者看起来过于复杂。为了连接到我的sql数据库,我使用PDO类。 在搜索自己的函数时,我无意中发现: 带有绑定参数的预准备语句不仅更可移植、更方便、不受SQL注入的影响,而且通常比内插查询执行得快得多,因为服务器端和
问题内容: 我在下面使用一个变量。 这由我的输入字段使用。 激活后,我想清除我的输入字段。但是,我不确定该怎么做。 另外,如本例所示,有人指出我应该将属性用于输入值。我还不清楚这到底意味着什么。在这种情况下有什么意义? 问题答案: 您可以使用输入类型=“重置”
问题内容: 我正在构建Codeigniter应用程序,并且正在尽最大努力防止SQL注入。我正在使用Active Record方法构造所有查询。我知道Active Record会自动清除输入内容,但是我想知道到底是什么程度?它只是转义所有引号,还是做更多呢?如何防止混淆的SQL注入或其他更高级的注入? 基本上,我正在寻找有关CI如何清理数据的深入说明。有人知道吗 问题答案: 完全像这样(对于MySQ
我在服务器端ti get post变量中编写了一个php代码。