是否有可能在用戶每次按下按鍵時運行方法。基本上我想在按下按鍵時運行iPhone或iPad上的聲音。 我不希望在我的窗口或某個控件中檢測到按鍵,我想要檢測所有按鍵(例如,當他們在Safari中輸入什麼內容時)我不需要知道密鑰是什麼Objective-C/Cocoa:檢測所有按鍵
感謝
是否有可能在用戶每次按下按鍵時運行方法。基本上我想在按下按鍵時運行iPhone或iPad上的聲音。 我不希望在我的窗口或某個控件中檢測到按鍵,我想要檢測所有按鍵(例如,當他們在Safari中輸入什麼內容時)我不需要知道密鑰是什麼Objective-C/Cocoa:檢測所有按鍵
感謝
使用CGEventTapCreate
這裏記載:
或者使用NSEvents addGlobalMonitorForEventsMatchingMask:handler:
這裏記載:
NSEvent例子:
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSKeyDownMask) handler:^(NSEvent *event){
[self keyWasPressedFunction: event];
//Or just put your code here
}];
我想說NSEvents更容易。 ..
注:
出於安全原因,蘋果要求你「啓用輔助設備的訪問」系統偏好設置開啓,爲了使用上述方法醚。
是的,一個示例會很有用,謝謝。 – 2012-04-29 01:55:38
@Oliver:好的,添加NSEvent示例,CGEventTaps要複雜得多,對於你想要做的事情來說不是必需的。 – Teak 2012-04-29 02:08:35
你可以得到相當接近有石英事件絲錐,但有些按鍵都不能檢測甚至一個安全。
着想。如果你告訴我們你心目中的大目標,我們可以提出其他建議,您是否正在嘗試爲您的應用建立一個全球熱鍵?您正在編寫鍵盤記錄程序還是惡意軟件?什麼?
所有我想要要做的就是製作一款應用程序,當他們按下某個鍵時,可以播放iPad或iPhone按鍵的敲擊噪音。 – 2012-04-29 01:44:05
然後,你應該看看事件水龍頭。同樣,出於安全原因,並非所有按鍵都可以被檢測到(例如,當使用密碼字段時,您無法獲得按鍵事件。) – 2012-04-29 01:44:56
使用NSEvents addGlobalMonitorForEventsMatchingMask:handler:
在applicationDidFinishLaunching
添加以下代碼,建立&去!
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSKeyDownMask) handler:^(NSEvent *event){
NSLog(@"%@", event.characters);
}];
Apple要求您在系統偏好設置中啓用「啓用對輔助設備的訪問」。
不要忘記在applicationWillClose函數中釋放監視器 – jQwierdy 2015-10-21 19:03:40
這是一個有點題外話,但目前已經是現有做到這一點的應用程序:http://sustworks.com/site/prod_keyclick_overview.html(然而付費軟件) – Teak 2012-04-29 01:49:55