在Xcode中设置TextBox和TextView的限制

时间:2011-01-27 13:17:21

标签: iphone objective-c cocoa-touch xcode

我创建了一个基于Window的应用程序,Tab-bar作为RootViewController。在其中一个选项卡上,我提供了TextBox和TextView。我想限制可以在其中写入的字符数(即TextBox和TextView)。 如果有人知道该怎么做,请帮助.. 感谢..

3 个答案:

答案 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;}
}