【发布时间】:2012-08-17 20:22:03
【问题描述】:
我希望 UItextView 在 TextView.contentSize.height 超过一定限制后不再接受任何字符。但可以删除内容。如何实现这一点。有什么建议吗??
【问题讨论】:
标签: iphone ios5 ios4 ios-simulator
我希望 UItextView 在 TextView.contentSize.height 超过一定限制后不再接受任何字符。但可以删除内容。如何实现这一点。有什么建议吗??
【问题讨论】:
标签: iphone ios5 ios4 ios-simulator
使用文本字段和文本视图的委托和数据源。
下面的文本字段委托方法示例
- (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;
}
}
【讨论】:
看看UITextFieldDelegate 协议。- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 是你的朋友。
【讨论】:
用户跟随委托方法以避免用户输入任何内容
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
return 0;/// Dont allow user to type
return 1; ///Allow user to type
}
【讨论】: