2016-06-17 171 views
0

我正在嘗試將自定義項目添加到我在ViewController中找到的表格視圖菜單中。我已經實現了所有必要的方法,但是我的項目仍然不顯示。如果我使用默認項目,如「複製」,一切正常。我遺漏了performAction方法,因爲我真的不知道要在那裏添加什麼,但複製操作沒有它。你能告訴我我錯了嗎?我們已經附上我的代碼中添加自定義菜單項下面:將自定義項目添加到Swift中的表格視圖

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") 

} 

回答

0

添加自定義項,以你的超級觀爲副視點

使用此行

self.tableview.addSubview(item) 
+0

item是UIMenuItem類型,addSubview需要類型視圖。 – Michal

0

原來我必須建立TableViewCell類並將其連接到我的單元格,並且在這個類中我必須實現方法blockAndReport。現在一切正常。我得出結論,你不能使用同一個類的表格菜單項的方法。

相關問題