我创建了一个基于Window的应用程序,Tab-bar作为RootViewController。在其中一个选项卡上,我提供了TextBox和TextView。我想限制可以在其中写入的字符数(即TextBox和TextView)。 如果有人知道该怎么做,请帮助.. 感谢..
答案 0 :(得分:0)
“标签栏”和“标签”是什么意思? 我假设你有一个UITabBarController作为RootViewController和一个UIView的子类是点击TabBarItem时显示的选项卡之一。 此外,我假设您的UITextView和(UITextField?)被添加到该UIView子类而不是TabBarItem?
如果是这种情况,您可以使用text属性进行检查:
if([yourTextView.text length] > 42) {
// truncate text; e.g. throw away last part or first part until the length is below 42
}
对于UITextField,应该相同 - 只需再次使用text属性
答案 1 :(得分:0)
您应该实现UITextFieldDelegate和/或UITextViewDelegate方法,
textField:shouldChangeCharactersInRange:replacementString:
或
textView:shouldChangeTextInRange:replacementText:
分别。
将实现这些方法的类的实例设置为视图的委托。方法中的逻辑应该检查传入的文本,并根据长度决定做什么。
答案 2 :(得分:0)
我发现了使用Delegates实现此问题的另一种类似方法:
#define MAX_LENGTH 20
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField.text.length >= MAX_LENGTH && range.length == 0)
{
return NO; // return NO to not change text
}
else
{return YES;}
}