[SWIFT] 스위프트 글로벌 수정 키를 눌러 감지
SWIFT스위프트 글로벌 수정 키를 눌러 감지
해결법
-
1.당신이 deviceIndependentFlagsMask와의 modifierFlags 교차로를 확인하고 그 결과 키를 확인할 수 있도록 뷰 컨트롤러에 .flagsChanged 일치하는 이벤트에 대한 글로벌 모니터를 추가 할 수 있습니다.
당신이 deviceIndependentFlagsMask와의 modifierFlags 교차로를 확인하고 그 결과 키를 확인할 수 있도록 뷰 컨트롤러에 .flagsChanged 일치하는 이벤트에 대한 글로벌 모니터를 추가 할 수 있습니다.
class func addGlobalMonitorForEvents(matching mask: NSEventMask, handler block: @escaping (NSEvent) -> Void) -> Any?
import Cocoa class ViewController: NSViewController { override func viewDidLoad() { super.viewDidLoad() NSEvent.addGlobalMonitorForEvents(matching: .flagsChanged) { switch $0.modifierFlags.intersection(.deviceIndependentFlagsMask) { case [.shift]: print("shift key is pressed") case [.control]: print("control key is pressed") case [.option] : print("option key is pressed") case [.command]: print("Command key is pressed") case [.control, .shift]: print("control-shift keys are pressed") case [.option, .shift]: print("option-shift keys are pressed") case [.command, .shift]: print("command-shift keys are pressed") case [.control, .option]: print("control-option keys are pressed") case [.control, .command]: print("control-command keys are pressed") case [.option, .command]: print("option-command keys are pressed") case [.shift, .control, .option]: print("shift-control-option keys are pressed") case [.shift, .control, .command]: print("shift-control-command keys are pressed") case [.control, .option, .command]: print("control-option-command keys are pressed") case [.shift, .command, .option]: print("shift-command-option keys are pressed") case [.shift, .control, .option, .command]: print("shift-control-option-command keys are pressed") default: print("no modifier keys are pressed") } } } }
from https://stackoverflow.com/questions/41927843/global-modifier-key-press-detection-in-swift by cc-by-sa and MIT license
'SWIFT' 카테고리의 다른 글
[SWIFT] 스위프트의 문자열 보간 및 문자열 초기화의 차이 (0) | 2020.11.07 |
---|---|
[SWIFT] 스위프트 : 유형이 지정된 클래스의 서브 클래스를 프로토콜을 구현해야합니다 [중복] (0) | 2020.11.07 |
[SWIFT] 날짜 (스위프트)에 중포 기지 경우 FireStore 타임 스탬프로 변환? (0) | 2020.11.07 |
[SWIFT] 한 번에 하나를 추가에 배열로 값을 사전 비어 (0) | 2020.11.07 |
[SWIFT] 어떻게 스위프트 내 프로그램의 시작에 최대로 내 키보드를 강제 할 수 있습니까? (0) | 2020.11.07 |