Swift 有没有办法将鼠标事件添加到Interface Builder中的操作中?

Swift 有没有办法将鼠标事件添加到Interface Builder中的操作中?,swift,xcode,xamarin,interface-builder,Swift,Xcode,Xamarin,Interface Builder,有没有办法将鼠标事件添加到Interface Builder中的操作中 当前在我的ViewController.h中,我有: - (IBAction)myStepperAction:(id)sender; - (IBAction)myStepperAction:(id)sender { } 在我的ViewController.m中,我有: - (IBAction)myStepperAction:(id)sender; - (IBAction)myStepperAction:(id)send

有没有办法将鼠标事件添加到Interface Builder中的操作中

当前在我的ViewController.h中,我有:

- (IBAction)myStepperAction:(id)sender;
- (IBAction)myStepperAction:(id)sender { }
在我的ViewController.m中,我有:

- (IBAction)myStepperAction:(id)sender;
- (IBAction)myStepperAction:(id)sender { }
在我的事件处理程序中,我有以下内容: (我在用C#但我能读一些Swift)

如果添加第二个参数,则会出现错误:

    partial void myStepperAction(Foundation.NSObject sender, Event event) {
        var stepper = sender as NSStepper;
        var value = event.CTRLKey==true ? stepper.DoubleValue + 10 : stepper.DoubleValue;
    }
CS0759:未找到用于执行声明的定义声明 分部方法“ViewController.myStepperAction(NSObject,EventArgs)”

是否有方法将事件传递给分部方法?或者有没有办法获取应用程序鼠标事件

我想做的是,单击步进器时,检查是否同时按下CTRL或SHIFT键,使其增量为10而不是1。

您可以使用来检测当前是否按下了特定键

您可以在这里找到
控件
的确切数字

它应该是
0x3B

检查下面Xamarin中使用的代码

partial void myStepperAction(Foundation.NSObject sender) {
    var stepper = sender as NSStepper;

    bool isCtrlPressed = CGEventSource.GetKeyState(0,0x3b);
    var value = isCtrlPressed ? stepper.DoubleValue + 10 : stepper.DoubleValue;
       
}

如果我理解正确,您是否希望在直接单击步进机时将值增加1,并在按CTRL或SHIFT键单击步进机时将值增加10?@ColeX MSFT这是正确的,这非常有效。您是否知道用户是否按下了向上或向下按钮?只需在我提供的链接中找到代码,向上和向下按钮的代码是
0x7E
0x7D
。我没有完全了解。我指的是步进机上的按钮。我为这个问题单独提出了一个问题。好的,我会用那条线索回答。