Cocoa中是否有任何协议实现cut的标准操作:copy paste:,就像UIKit的UIResponderStandardEditActions一样?
我想做这样的事情,而不使用新的Swift3 #selector在这个类中实现delete(_ :):
override func supplementalTarget(forAction action: Selector, sender: Any?) -> Any? {
switch action{
case #selector(delete(_:)):
return outlineView.delegate
default:
return nextResponder
}
}
由于
答案 0 :(得分:0)
您可以定义自己的协议:
@objc protocol MyStandardActionProtocol {
func cut(_: Any)
func copy(_: Any)
func paste(_: Any)
}
并使用#selector
之类的:
override func supplementalTarget(forAction action: Selector, sender: Any?) -> Any? {
switch action{
case #selector(MyStandardActionProtocol.cut(_:)):
return ...
//...
default:
return nextResponder
}
}
Selector
实例中不包含类型信息,因此即使没有类符合协议,这也会有效。