我正在使用此代码设置我在视图中的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
为什么会这样?我做错了吗?
任何帮助表示赞赏...
答案 0 :(得分:10)
除了删除_textview = [[UITextView alloc]init];
以便不覆盖你的nib加载的textview。
<UITextViewDelegate>
方法是:
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{}
正确的方法签名是:
textView:shouldChangeTextInRange:replacementText:
不
textView:shouldChangeTextInRange:replacementString:
答案 1 :(得分:6)
因为您输入的方法名称错误。
没有
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementString:(NSString *)string
但仅
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
请注意replacementString
和replacementText
之间的差异。
另外,正如其他人所说,如果您在IB中创建了UITextView,则不应在代码中再次初始化它(但这不是您的委托从未调用的原因)。