从uitextfield的开头删除WhiteSpace
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从uitextfield的开头删除WhiteSpace相关的知识,希望对你有一定的参考价值。
我想从单词的开头删除空格。即我的第一个角色不应该是空格,并且在两个单词之间只有一个空格。我正在尝试很多东西,但是不能从开始移除空间。
我的代码是:
或者Controller.h
int whitespaceCount;
Controller.m或者
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet];
if ([string rangeOfCharacterFromSet:whitespace].location != NSNotFound)
{
whitespaceCount++;
if (whitespaceCount > 1)
{
return NO;
}
}
else
{
whitespaceCount = 0;
return YES;
}
}
从上面的代码中,两个单词之间的一个空格是完美的。请建议我如何删除起始空间。提前致谢。
你可以用方法: -
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (range.location == 0 && [string isEqualToString:@" "]) {
return NO;
}
return YES;
}
或者对于最新的Swift,您可以使用以下内容:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if range.location == 0 && (string == " ") {
return false
}
return true
}
使用此功能,您无法在启动时输入whitescpace。
你也可以这样做: -
NSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet];
如果要从字符串中删除它,则需要处理以下内容
NEW STRING> = [<STRING_CONTAINS WHITESPACE> stringByTrimmingCharactersInSet:whitespace];
NSLog("String without white space = %@",NEW STRING);
或者,如果要完全从文本字段中删除空格,请使用以下命令:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if (string == " ") {
return false
}
return true
}
要使此方法有效,请务必标记您的textfield.delegate = self
当您要使用它时,修剪文本字段内的文本
myTextfiled.text = [myTextfiled.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
这将从开头和结尾修剪空白
下面的方法可以完美地删除文本前后的空格:string = [string stringByTrimmingCharactersInSet:whitespace];
使用此方法删除空格:
+(NSString *)trim:(NSString *) strInput{ return [strInput stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; }
最好防止用户在UITextField中输入空格作为第一个字符。在这里,我们将阻止用户输入空格作为第一个字符。允许用户在字符串之间以及字符串末尾输入空格。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
//Will prevent user from entering space as first character
let enteredCharString = "(textField.text ?? "")(string )"
if enteredCharString .trim().count == 0 {
return false
}
}
以上是关于从uitextfield的开头删除WhiteSpace的主要内容,如果未能解决你的问题,请参考以下文章
从 UITableViewCell 内的 UITextField 中删除 Tap 手势
swift - 从 var(UITextField 输入)中删除空格不起作用
如何从 UITextfields UIMenuController 中删除不需要的 UIMenuItems?