Как судить о NSEvent по щелчку трекпада, а не по нажатию, чтобы щелкнуть

Когда установлен флажок «Нажмите, чтобы щелкнуть», как судить о NSEvent по щелчку трекпада (нажатие вниз) или касанию, чтобы щелкнуть.

- (void)mouseEvent:(NSEvent*)theEvent {
  if ((type == NSLeftMouseUp || type == NSLeftMouseDown) && [theEvent subtype] == NSEventSubtypeTouch) {
    // How to detect touchpad is real pressed?? Not tap to cllick
  }
}

person 章清照    schedule 29.12.2018    source источник


Ответы (1)


Чтобы узнать, если кто-то только "нажмите, чтобы щелкнуть", вы можете использовать

func pressureChange(with event: NSEvent) 

в вашем NSViewController на NSView.

Если кто-то просто «нажмет», функция не сработает. В случае щелчка вы получите уровень давления при изменении давления.

   override func pressureChange(with event: NSEvent) {
        super.pressureChange(with: event)
        print("pressure \(event.pressure)")
    }
person Marc T.    schedule 29.12.2018
comment
Mac OS в цели -c? - person 章清照; 02.01.2019
comment
трекпад нажмите вниз, эта функция не вызывается. - person 章清照; 02.01.2019
comment
- (void) pressureChangeWithEvent: (NSEvent *) событие NS_AVAILABLE_MAC (10_10_3); в NSResponder, а не в NSViewController - person 章清照; 02.01.2019
comment
Это не принудительное касание трекпада - person 章清照; 02.01.2019
comment
Это полезно только для принудительного касания трекпада - person 章清照; 04.01.2019
comment
Да, ты прав. Он будет работать только с трекпадами с принудительным касанием, но я предполагаю, что в настоящее время у большинства MacBook они есть. - person Marc T.; 04.01.2019
comment
только после 2016 года у MacBook появится трекпад Force Touch - person 章清照; 08.01.2019