我创建了一个'UITextView'而不是设置最大字符限制,我想要在字符到达行尾时禁用键盘。我尝试过研究,但我找不到答案。好像我是第一个提出这个问题的人。
希望你能帮助我。感谢答案 0 :(得分:0)
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSMutableString * mutableString = [NSMutableString stringWithString:textView.text];
[mutableString insertString:text atIndex:textView.text.length];
if (mutableString.length <= desiredLenghtNumber) {
return YES;
}
else {
return NO;
}
}
desiredLenghtNumber是最大字母数,例如
int desiredLenghtNumber = 10;
of courde您需要将该textfield设置为delegate
textView.delgate = self;
并在.h文件中声明此委托
@interface YourViewController : UIViewController <UITextViewDelegate>
答案 1 :(得分:0)
我认为我应该自己回答这个问题。
我尝试了这段代码,这对我有用。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSString *myText = [textView.text stringByReplacingCharactersInRange:range withString:text];
CGSize textSize = [myText sizeWithFont:textView.font constrainedToSize:CGSizeMake(TEXTVIEW_WIDTH - 20, 10000) lineBreakMode:NSLineBreakByWordWrapping];
NSInteger strH = textSize.height;
NSLog(@"String Size Height %i",strH);
NSInteger maxHeight = 51;
if (strH >= maxHeight)
{
return NO;
}
return YES;
}
我在我的代码中使用了51,因为当我检查strH
中NSLog
的值时,我发现51标记了第三行的开头。其中我不允许文本达到该高度,因为我只需要在我的应用中允许2行UITextView
。
在constrainedToSize:CGSizeMake(TEXTVIEW_WIDTH - 20, 10000)
中,我从我的UITextView
宽度减去了20px,考虑它的左右边距。