UITextView должен не вызывать делегатаChangeTextInRange - PullRequest
5 голосов
/ 13 февраля 2012

Я использую этот код для установки параметров uitextview, который у меня есть на моем видении.

_textview=[[UITextView alloc]init];
[_textview setUserInteractionEnabled:FALSE];
_textview.text=@"Write your message";
_textview.textColor=[UIColor lightGrayColor];
_textview.layer.cornerRadius=6;
_textview.contentInset = UIEdgeInsetsZero;
_textview.delegate=self;

У меня есть в .h этот код

IBOutlet UITextView *_textview;
@property(nonatomic,retain) IBOutlet UITextView *_textview;

Я подключил выход к uitextview с помощью интерфейса.

Происходит следующее:

- (void)textViewDidChange:(UITextView *)inTextView

вышеупомянутый делегат вызван, но не следующий:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementString:(NSString *)string 

Почему это происходит? Я делаю что-то не так?

Любая помощь приветствуется ...

Ответы [ 2 ]

10 голосов
/ 13 февраля 2012

В дополнение к удалению _textview = [[UITextView alloc]init];, чтобы не перезаписывать загруженное пером текстовое представление.

<UITextViewDelegate> метод:

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{}

Правильная сигнатура метода:

textView:shouldChangeTextInRange:replacementText:

не:

textView:shouldChangeTextInRange:replacementString:
6 голосов
/ 13 февраля 2012

Поскольку вы ввели неверное имя метода.

Нет

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementString:(NSString *)string

, а только

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

осторожно обращайте внимание на различия между replacementString и replacementText.

Кроме того, как говорили другие, если вы создали UITextView в IB, вы НЕ должны инициировать его снова в своем коде (ноэто не причина, по которой ваш делегат никогда не вызывался).

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