2016-03-26 8 views
4

Ich würde die Option hinzufügen, um die ausgewählte Zelle in einer Tabelle wie in der App Kontakte zu kopieren.Wie zeigt man das Menü "Kopieren" für eine Tabellenzelle an?

copy menu

Ich habe versucht, this question über Objective-C zu folgen und diese Methoden in Swift impliment:

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

override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool { 
    return (action == #selector(NSObject.copy(_:))) 
} 

jedoch, dass eine alte Frage, und ich kann das Menü nicht bekommen zeigen Sie mit Swift Code. Könnte jemand erklären, wie die shouldShowMenuForRowAtIndexPath-Methode verwendet wird und wie ein Benutzer eine Zelle kopieren kann.

Antwort

8

Sie beziehen sich auf an Objective-C example, aber Sie haben nicht getan, was es zu tun sagt! Ihre zweite Methode ist die falsche Methode. Sie wollen, dies sagen:

override func tableView(tableView: UITableView, canPerformAction action: Selector, 
    forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) 
    -> Bool { 
     return action == #selector(copy(_:)) 
} 

Sie werden auch eine dritte Überschreibung müssen:

override func tableView(tableView: UITableView, performAction action: Selector, 
    forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) { 
     // ... 
} 
Verwandte Themen