2
在處理Quartz事件時,我似乎無法找到關於什麼事件0x1D,29的文檔以及如何處理它。當點擊Quartz事件時,什麼是CGEventType 0x1D(29)?
我在這裏,並在頭文件的分類看... https://developer.apple.com/documentation/coregraphics/cgeventtype?language=objc
有問題的情況下使用觸摸條和觸控板時產生。
我的具體問題是點擊捕捉觸摸欄像轉義軟鍵。當用戶觸摸轉義時,會觸發0x1D事件。如果此事件未從事件回調中返回,那麼kCGEventKeyDown和kCGEventKeyUp事件永遠不會被觸發。如果返回此事件,則隨後的事件將像傳統鍵盤上的按鈕一樣觸發。
eventTap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, 0, kCGEventMaskForAllEvents, myCGEventCallback, NULL);
//No touch bar soft key events will ever fire
CGEventRef myCGEventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) {
if(type == 0x1D) {
return NULL;
}
}
顯然,我可以總是一味返回此類型的事件,但我更願意理解這一事件代表什麼信息可裏面的CGEventRef。
非常感謝! –