当我尝试以交互方式关闭keyBoard时,我的inputAccessoryView出现错误

时间:2019-04-10 13:18:03

标签: swift uitextview interactive inputaccessoryview resignfirstresponder

我已经用UITextView实现了inputAccessoryView。我还设置了collectionView.keyboardDismissMode = .interactive 当我使用交互模式关闭键盘时,会出现这两个错误

1)-第一响应者警告:'<.InputTextView:0x7f8f54061800; baseClass = UITextView;框架=(8 8; 307 35.5);文字=''; clipsToBounds = YES; poseRecognizers =;层=; contentOffset:{0,0}; contentSize:{130,0}; AdjustedContentInset:{0,0,0,0}>'从层次结构中删除时拒绝resignFirstResponder

2)-调用[UIWindow endDisablingInterfaceAutorotationAnimated:],但不匹配-beginDisablingInterfaceAutorotation。忽略。

Xcode 10和Swift 4

CollectionViewController的代码

lazy var containerView: InputAccesoryView = {

    let frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 50)
    let containerView = InputAccesoryView(frame: frame)

    containerView.backgroundColor = UIColor.groupTableViewBackground
    containerView.autoresizingMask = .flexibleHeight
    containerView.delegate = self

    return containerView
}()

override var inputAccessoryView: UIView {
    get {
        return containerView
    }
}

override var canBecomeFirstResponder: Bool {
    return true
}

InputAccesoryView的代码

public let inputTextView: InputTextView = {
    let textView = InputTextView()
    textView.font = UIFont.systemFont(ofSize: 16)
    textView.isScrollEnabled = false
    textView.textAlignment = .left
    textView.layer.cornerRadius = 10
    return textView
}()

private lazy var sendButton: UIButton = {
    let button = UIButton(type: .system)
    button.setImage(UIImage(named: "send2"), for: .normal)
    button.tintColor = .black
    button.addTarget(self, action: #selector(handleUploadComment), for: .touchUpInside)
    return button
}()

override init(frame: CGRect) {
    super.init(frame: frame)

    configureViewComponents()
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

override var intrinsicContentSize: CGSize {
    return CGSize.zero
}

private func configureViewComponents(){


    addSubview(sendButton)
    sendButton.setPosition(top: nil, left: nil, bottom: nil, right: rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 8, width: 44, height: 0)
    sendButton.centerYAnchor.constraint(equalTo: layoutMarginsGuide.centerYAnchor).isActive = true

    addSubview(inputTextView)
    inputTextView.setPosition(top: topAnchor, left: leftAnchor, bottom: layoutMarginsGuide.bottomAnchor, right: sendButton.leftAnchor, paddingTop: 8, paddingLeft: 8, paddingBottom: 8, paddingRight: 8, width: 0, height: 0)

    let separatorView = UIView()
    separatorView.backgroundColor = UIColor(red: 230/255, green: 230/255, blue: 230/255, alpha: 1)
    addSubview(separatorView)
    separatorView.setPosition(top: topAnchor, left: leftAnchor, bottom: nil, right: rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0.5)
}

func clearCommentTextView() {
    inputTextView.text = nil
    inputTextView.placeHolder.isHidden = false
}

0 个答案:

没有答案