114 lines
4.2 KiB
Swift
114 lines
4.2 KiB
Swift
//
|
|
// MewRoomTransferMsgView.swift
|
|
// yinmeng-ios
|
|
//
|
|
// Created by duoban on 2024/1/16.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class MewRoomTransferMsgView: UIView {
|
|
|
|
@objc public lazy var mewTextView:UITextField = {
|
|
let _mewTextView = UITextField()
|
|
let att = NSMutableAttributedString(string: "请输入消息...", attributes: [.font:UIFont.systemFont(ofSize: 15),.foregroundColor:R.color.mewRoomMsgTextColor() ?? UIColor.white])
|
|
_mewTextView.attributedPlaceholder = att
|
|
_mewTextView.borderStyle = UITextField.BorderStyle.none
|
|
_mewTextView.textColor = R.color.mewAppMainTextColor()
|
|
_mewTextView.font = UIFont.systemFont(ofSize: 15)
|
|
_mewTextView .addTarget(self, action: #selector(mewTextFieldDidChange(_ :)), for: .editingChanged)
|
|
return _mewTextView
|
|
}()
|
|
|
|
@objc public var mewUserData:MewPersonInfoModel?
|
|
@objc public var mewRoomData:MewRoomPlayModel?
|
|
|
|
let mewSendBtn:UIButton = {
|
|
let _mewSendBtn = UIButton()
|
|
_mewSendBtn.setTitle("发送", for: .normal)
|
|
_mewSendBtn.setTitleColor(R.color.mewAppMainTextColor(), for: .normal)
|
|
_mewSendBtn.layer.cornerRadius = 5
|
|
_mewSendBtn.layer.masksToBounds = true
|
|
_mewSendBtn.isEnabled = false
|
|
_mewSendBtn.backgroundColor = R.color.mewRoomSendMsgColor()
|
|
_mewSendBtn.titleLabel?.font = UIFont.systemFont(ofSize: 15)
|
|
_mewSendBtn.addTarget(self, action: #selector(mewSendMsgAction), for: .touchUpInside)
|
|
return _mewSendBtn
|
|
}()
|
|
|
|
@objc private func mewSendMsgAction(){
|
|
if self.mewTextView.text?.count == 0{
|
|
return
|
|
}
|
|
let extData = MewMsgExtDataModel()
|
|
extData.erbanNo = self.mewUserData?.erbanNo ?? 0;
|
|
extData.newUser = self.mewUserData?.newUser ?? false;
|
|
let msg = NIMMessage()
|
|
msg.text = self.mewTextView.text
|
|
let remoteExt = NSMutableDictionary()
|
|
let uid = MewSaveBaseUserModel.share().mewGetUserId()
|
|
remoteExt[uid] = extData.mj_keyValues().copy()
|
|
msg.remoteExt = remoteExt as? [AnyHashable : Any]
|
|
|
|
let mewOption = NIMAntiSpamOption()
|
|
mewOption.yidunEnabled = true
|
|
mewOption.businessId = MewEncryptManager.mewAESDecryptText("EhdbQun+WXkne5z3pctmR/3144MiHQbb+Dw1kIia3a+TcSiMNCCZgxUwTjE3XVDH")
|
|
msg.antiSpamOption = mewOption
|
|
if let msgId = self.mewRoomData?.roomId{
|
|
let msgIdText = String(format:"%ld",msgId)
|
|
let session = NIMSession(msgIdText, type: .chatroom)
|
|
NIMSDK.shared().chatManager.send(msg, to: session) { error in
|
|
self.mewTextView.text = ""
|
|
self.mewTextView.resignFirstResponder()
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
mewSetUI()
|
|
mewSetUIFrame()
|
|
mewSetNot()
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
private func mewSetUI(){
|
|
self.backgroundColor = .white
|
|
addSubview(mewTextView)
|
|
addSubview(mewSendBtn)
|
|
|
|
}
|
|
private func mewSetUIFrame(){
|
|
mewTextView.snp.makeConstraints { make in
|
|
make.left.equalTo(self).offset(8);
|
|
make.right.equalTo(self).offset(-60);
|
|
make.top.bottom.equalTo(self);
|
|
}
|
|
mewSendBtn.snp.makeConstraints { make in
|
|
make.width.equalTo(50);
|
|
make.top.bottom.equalTo(self).inset(5);
|
|
make.right.equalTo(self).offset(-5);
|
|
}
|
|
}
|
|
@objc private func mewkeyboardWillShow(_ not:Notification){
|
|
|
|
|
|
|
|
}
|
|
@objc private func mewkeyboardWillHidden(_ not:Notification){
|
|
|
|
self.removeFromSuperview()
|
|
}
|
|
@objc private func mewTextFieldDidChange(_ textField:UITextField){
|
|
mewSendBtn.isEnabled = ((textField.text?.isEmpty) != nil)
|
|
}
|
|
private func mewSetNot(){
|
|
NotificationCenter.default.addObserver(self, selector: #selector(mewkeyboardWillShow(_:)), name:UIResponder.keyboardWillShowNotification, object: nil)
|
|
NotificationCenter.default.addObserver(self, selector: #selector(mewkeyboardWillHidden(_:)), name:UIResponder.keyboardWillHideNotification, object: nil)
|
|
|
|
}
|
|
}
|