2014-10-01 2 views
0

Я делаю приложение, в котором есть UITextView, который позволяет пользователям вводить только 2 строки текста. Таким образом, текст не достигнет третьей строки, так как UITextView попросит его остановиться. Кто-нибудь знает, как подойти к этому в программировании Swift? Я обнаружил, что есть способ для достижения этой цели, но написано в коде Objective-CiOS: Как ограничить количество строк UITextView с помощью Swift?

- (BOOL) textView:(UITextView *)textView 
shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    NSString *newText = [textView.text stringByReplacingCharactersInRange:range withString:text]; 
_tempTextInputView.text = newText; 

// Calcualte the number of lines with new text in temporary UITextView 
CGRect endRectWithNewText = [_tempTextInputView caretRectForPosition:_tempTextInputView.endOfDocument]; 
CGRect beginRectWithNewText = [_tempTextInputView caretRectForPosition:_tempTextInputView.beginningOfDocument]; 
float beginOriginY = beginRectWithNewText.origin.y; 
float endOriginY = endRectWithNewText.origin.y; 
int numberOfLines = (endOriginY - beginOriginY)/textView.font.lineHeight + 1; 

if (numberOfLines > maxLinesInTextView) {// Too many lines 
    return NO; 
}else{// Number of lines will not over the limit 
    return YES; 
} 

} 

я боролся с эквивалентным кодом в Swift особенно эта строка кода:

NSString *newText = [textView.text stringByReplacingCharactersInRange:range withString:text]; 

Я просто не мог Не знаю, как бороться с NSRange в Swift. Может кто-нибудь, пожалуйста, помогите мне?

+0

Я думаю, что это должно работать для этой строки: NSString * newText = textView.text.stringByReplacingCharactersInRange (range, withString: text) – rdelmar

+0

@rdelmar: что вы подразумеваете под этим? –

+0

Вы спросили, как перевести эту строку в Свифт. Вот как вы это делаете (предполагая, что вы уже создали диапазон и текст). – rdelmar

ответ

-1

Можете ли вы установить размер рамки для двух линий и ограничить общее количество символов, которые можно ввести?

+0

Это может быть сделано. Но мое приложение имеет несколько UITextViews, поэтому я боюсь, что ваш подход не совсем практичен в этом случае, поскольку мне нужно будет подсчитать, сколько символов должно быть ограничено для каждого UITextView –