Установка ограничений для TextBox и TextView в Xcode - PullRequest
0 голосов
/ 27 января 2011

Я создал приложение на основе окна с панелью вкладок в качестве RootViewController.На одной из вкладок я предоставил TextBox и TextView.Я хочу ограничить количество символов, которые могут быть записаны внутри них (т.е. TextBox и TextView).Пожалуйста, помогите, если кто-то знает, как это сделать .. Спасибо ..

Ответы [ 3 ]

0 голосов
/ 27 января 2011

Вы должны реализовать методы UITextFieldDelegate и / или UITextViewDelegate,

textField:shouldChangeCharactersInRange:replacementString:

или

textView:shouldChangeTextInRange:replacementText:

соответственно.

Установите экземпляр класса, который реализует эти методы в качестве делегата для вашего представления.Логика в методе должна проверять входящий текст и решать, что делать на основе длины.

0 голосов
/ 27 января 2011

Я нашел другой похожий способ реализовать эту проблему с помощью делегатов:

#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;}
}
0 голосов
/ 27 января 2011

что вы подразумеваете под "панелью вкладок" и "вкладкой"?я предполагаю, что у вас есть 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 снова

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...