產(chǎn)品要求給輸入框加個(gè)Placeh吨铸,其實(shí)挺簡(jiǎn)單一功能,尋遍他們的官網(wǎng)https://www.rongcloud.cn/和文檔https://docs.rongcloud.cn/v4/都沒有找到相關(guān)資料,現(xiàn)實(shí)很殘酷拱烁,SDK 木有這個(gè)接口暇番,只能自己實(shí)現(xiàn)了,思來想去,用了個(gè)笨辦法廊鸥,加個(gè) UILabel 一試望浩,還真行,有需要的您請(qǐng)往下看惰说。
其實(shí)就是給輸入框價(jià)格 UILabel磨德,在該顯示的時(shí)候顯示,該隱藏的時(shí)候隱藏就完事兒了吆视,代碼如下:
- 在聊天頁面添加一個(gè) UILabel 屬性
@property(nonatomic, strong) UILabel *placeholderLabel;
- 初始化并添加 placeholderLabel 對(duì)象
- (void)configPlaceholder {
//初始化和設(shè)置
self.placeholderLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 180, 20)];
[self.chatSessionInputBarControl.inputTextView addSubview:self.placeholderLabel];
self.placeholderLabel.text = @"測(cè)試 Placeholder";
self.placeholderLabel.textColor = [UIColor grayColor];
self.placeholderLabel.userInteractionEnabled = YES;
//添加點(diǎn)擊手勢(shì)
UITapGestureRecognizer *tapLabel = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapPlaceholderLabel)];
[self.placeholderLabel addGestureRecognizer:tapLabel];
}
- (void)tapPlaceholderLabel {
[self.chatSessionInputBarControl updateStatus:KBottomBarKeyboardStatus animated:YES];
}
- 在內(nèi)容發(fā)生變化和點(diǎn)擊發(fā)送后典挑,設(shè)置 placeholder 效果的顯示
- (void)inputTextView:(UITextView *)inputTextView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
//在內(nèi)容發(fā)生變化和點(diǎn)擊發(fā)送后,設(shè)置 placeholder 效果的顯示
if ((range.location == 0 && [text isEqualToString:@""]) || [text isEqualToString:@"
"]) {
self.placeholderLabel.hidden = NO;
} else {
self.placeholderLabel.hidden = YES;
}
}
- 還要提一下啦吧,融云的 SDK 有撤回消息以后的“重新編輯”功能您觉,在這個(gè)時(shí)候,要關(guān)閉 placeholder 效果的顯示
- (void)didTapReedit:(RCMessageModel *)model {
self.placeholderLabel.hidden = YES;
[super didTapReedit:model];
}
到這兒功能就完成了授滓,placeholderLabel 的具體文字效果可以自行修改調(diào)整琳水,希望上面的代碼可以幫到你,喜歡的話般堆,點(diǎn)個(gè)贊吧在孝。