【问题标题】:Adding custom item to Table View in Swift在 Swift 中将自定义项添加到表视图
【发布时间】:2016-06-17 10:44:10
【问题描述】:

我正在尝试将自定义项添加到我的表格视图菜单中,该菜单位于ViewController 中。我已经实现了所有必要的方法,但我的项目仍然没有出现。如果我使用默认项目,如“复制”,一切正常。我省略了 performAction 方法,因为我真的不知道要在那里添加什么,但是没有它就出现了复制操作。你能告诉我我做错了什么吗?我已附上我的代码以在下面添加自定义菜单项:

override func viewDidLoad() {
    super.viewDidLoad()

    let item = UIMenuItem(title: "Block and Report", action: #selector(MessageViewController.blockAndReport(_:)))

    let menu = UIMenuController.sharedMenuController()

    var newItems = menu.menuItems
        ?? [UIMenuItem]()
    newItems.append(item)
    menu.menuItems = newItems ...}

func tableView(tableView: UITableView, shouldShowMenuForRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    return true
}

func tableView(tableView: UITableView, canPerformAction action: Selector, forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) -> Bool {

    if action == #selector(MessageViewController.blockAndReport(_:)) {
        return true
    }


    return false
}

func tableView(tableView: UITableView, performAction action: Selector, forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) {

    //I don't really know what to add here
}

func blockAndReport(sender: AnyObject?) {

    print("Hello")

}

【问题讨论】:

    标签: ios swift contextmenu cell menuitem


    【解决方案1】:

    将自定义项目作为子视图添加到您的超级视图中

    使用这条线

    self.tableview.addSubview(item)
    

    【讨论】:

    • item 是 UIMenuItem 类型,addSubview 需要 view 类型。
    【解决方案2】:

    事实证明,我必须设置 TableViewCell 类并将其连接到我的单元格,并且在这个类中我必须实现方法 blockAndReport。现在一切正常。我得出的结论是,您不能对同一类的表格菜单项使用方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多