首页 > 解决方案 > Swift - 如何使用 becomeFirstResponder 跳转到顶部

问题描述

这就是我想要做的,当我点击我的时候button我想跳到顶部但是当我点击button我的应用程序崩溃时。

@IBAction func addToCart(_ sender: UIButton) {

    if quantitylbl.text == "0" {
        dismiss(animated: true)
    }

    // Save in to userdefault
    let section = sender.tag / 100
    let row = sender.tag % 100
    let dict = arrayCategory[section] as? NSDictionary
    let subLimit = getStringValueFromAPIValue(apiValue: dict?.value(forKey: "limit"), defaultValue: "")

    let cell = self.tableView.cellForRow(at: IndexPath(row: row, section: section)) as! CustomizationDropDownTableViewCell

    if self.section_quantity[section] < Int(truncating: subLimit.numberValue!) {
        cell.btnDropdown.becomeFirstResponder()
    }
}

标签: iosswiftuitableviewtableview

解决方案


let subLimit = getStringValueFromAPIValue(apiValue: dict?.value(forKey: "limit"), defaultValue: "")
let cell = self.tableView.cellForRow(at: IndexPath(row: row, section: section)) as! CustomizationDropDownTableViewCell

我不确定是什么问题导致您的应用程序崩溃。尝试在代码中设置一些断点。我认为可选问题可能存在问题。

subLimit 是可选的,因此在强制展开时确保它具有值。Int(截断:subLimit.numberValue!)

此外,仅当您确定向下转换将始终成功时,才使用类型转换运算符的强制形式(as!)。请参阅 Apple 的 Swift 文档。https://docs.swift.org/swift-book/LanguageGuide/TypeCasting.html


推荐阅读