如何允许 uitextview 只接受退格键和删除键
Posted
技术标签:
【中文标题】如何允许 uitextview 只接受退格键和删除键【英文标题】:how to allow uitextview to accept only backspace and delete key 【发布时间】:2012-08-17 20:22:03 【问题描述】:我希望 UItextView 在 TextView.contentSize.height 超过一定限制后不再接受任何字符。但可以删除内容。如何实现这一点。有什么建议吗??
【问题讨论】:
【参考方案1】:使用文本字段和文本视图的委托和数据源。
下面的文本字段委托方法示例
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string if (textField == self.txtContact)
if ([DebugLog isEqualToString:@"1"])
NSLog(@"%@",textField.text);
char *x = (char*)[string UTF8String];
if([string isEqualToString:@"-"] || [string isEqualToString:@"("] || [string isEqualToString:@")"] || [string isEqualToString:@"0"] || [string isEqualToString:@"1"] || [string isEqualToString:@"2"] || [string isEqualToString:@"3"] || [string isEqualToString:@"4"] || [string isEqualToString:@"5"] || [string isEqualToString:@"6"] || [string isEqualToString:@"7"] || [string isEqualToString:@"8"] || [string isEqualToString:@"9"] || x[0]==0 || [string isEqualToString:@" "])
if ([DebugLog isEqualToString:@"1"])
NSLog(@"%d",[string length]);
NSUInteger newLength = [textField.text length] + [string length];
if (!CheckDigit)
if ([textField.text length] == 4)
textField.text =[NSString stringWithFormat:@"%@-",textField.text];
CheckDigit=TRUE;
if (!CheckDigit1)
if ([textField.text length] == 9)
textField.text =[NSString stringWithFormat:@"%@-",textField.text];
CheckDigit1=TRUE;
if ([textField.text length]<=4 )
CheckDigit=FALSE;
if ([textField.text length]<=9 && [textField.text length]>=4 )
CheckDigit1=FALSE;
return (newLength > 11) ? NO : YES;
else
return NO;
【讨论】:
【参考方案2】:看看UITextFieldDelegate 协议。- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
是你的朋友。
【讨论】:
【参考方案3】:用户跟随委托方法以避免用户输入任何内容
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
return 0;/// Dont allow user to type
return 1; ///Allow user to type
【讨论】:
以上是关于如何允许 uitextview 只接受退格键和删除键的主要内容,如果未能解决你的问题,请参考以下文章
解决Ubuntu中vi命令的编辑模式下不能正常使用方向键和退格键的问题
解决Ubuntu14.04下vi编辑器不能使用方向键和退格键问题