簡體   English   中英

Swift 3:從.xib文件實例化的InputAccessoryView

[英]Swift 3: InputAccessoryView instantiated from .xib file

我在從.xib文件中實例化我的InputAccessoryView時遇到問題,其中inputAccessoryView對輸入沒有反應:

private var conversationToolBar = ConversationToolBar()

override var inputAccessoryView: UIView? {
    return self.conversationToolBar
}

在此輸入圖像描述

如果我從方法(createAccessoryView)實例化我的inputAccessoryView:

private var conversationToolBar = ConversationToolBar().createAccessoryView(width: UIScreen.main.bounds.width)

我的課:

class ConversationToolBar: UIView {

@IBOutlet var view: UIView!

override init(frame: CGRect) {
    super.init(frame: frame)
    self.view = UINib(nibName: "ConversationToolBar", bundle: nil).instantiate(withOwner: self, options: nil).first as! UIView
    self.addSubview(self.view)
    self.view.frame = self.bounds
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    self.view = UINib(nibName: "ConversationToolBar", bundle: nil).instantiate(withOwner: self, options: nil).first as! UIView
    self.addSubview(self.view)
    self.view.frame = self.bounds
}

func createAccessoryView(width: CGFloat) -> UIView {
    let accessoryView = UIView(frame: CGRect(x: 0, y: 0, width: width, height: 100))
    accessoryView.backgroundColor = UIColor.blue

    let closeLabel = UITextField(frame: accessoryView.frame)
    closeLabel.font = UIFont.boldSystemFont(ofSize: 14)
    closeLabel.text = "Hello"
    closeLabel.textColor = UIColor.white
    closeLabel.textAlignment = .center
    accessoryView.addSubview(closeLabel)

    return accessoryView
}
}

行為按預期工作。

在此輸入圖像描述

誰能幫我? 謝謝

我有同樣的問題,顯示inputAccessoryView按預期,並修復它調用此方法刷新輸入或附件視圖:

closeLabel.reloadInputViews()

當對象是第一響應者時更新自定義輸入和附件視圖。 當第一響應者作為第一響應者時,您可以使用此方法刷新自定義輸入視圖或輸入與當前對象關聯的附件視圖。 視圖會立即替換 - 也就是說,不會將它們設置為動畫。 如果當前對象不是第一個響應者,則此方法無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM