我正在实现一个NSControlTextEditingDelegate协议,但是我不知道应该与哪个类/协议匹配,例如commandSelector。#selector(WhichClass.moveUp(_ :))以便相等性通过。
目前在swift 2.1中一切正常:
func control(control: NSControl, textView: NSTextView, doCommandBySelector commandSelector: Selector) -> Bool {
var goUp = false
var goDown = false
if (commandSelector == Selector("moveUp:") ||
commandSelector == Selector("moveBackward:") ||
commandSelector == Selector("moveUpAndModifySelection:") ||
commandSelector == Selector("moveParagraphBackwardAndModifySelection:")
)
{
goUp = true
}
if (commandSelector == Selector("moveDown:") ||
commandSelector == Selector("moveForward:") ||
commandSelector == Selector("moveDownAndModifySelection:") ||
commandSelector == Selector("moveParagraphForwardAndModifySelection:")
) {
goDown = true
}
//...
}
#selector(MyProtocol.moveUp(_:)) == #selector(NSResponder.moveUp)
返回 true。当两个选择器的 Objective-C 表示(例如"moveUp:")相同时,它们是相等的。不用担心。 - undefinedNSStandardKeyBindingResponding.moveUp
- undefined