1
NSControlTextEditingDelegateプロトコルを実装していますが、どのクラス/プロトコルiと一致させるべきか分かりません。 commandSelector。 #selector(WhichClass.moveUp(_ :))、等価性が成立するようにします。swiftでNSResponderセレクタを更新するには2.2
現在、すべてが2.1迅速でokです:
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
}
//...
}
回答ありがとうございます。平等を心配する必要はありませんか? –
@MarekH、簡単にチェックすることができます。 '#selector(MyProtocol.moveUp(_ :))== #selector(NSResponder.moveUp)'はtrueを返します。 Objective-Cの表記法(「moveUp:」など)が等しい場合、2つのセレクタは等しいです。心配しないでください。 – OOPer