新聞中心
概覽
在 iOS App 和用 Mac Catalyst 構(gòu)建的 Mac App 中,系統(tǒng)會(huì)通過(guò)向活躍 App 響應(yīng)器鏈中的響應(yīng)器對(duì)象發(fā)送按鍵事件來(lái)報(bào)告用戶在實(shí)體鍵盤上的按鍵操作。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括扶風(fēng)網(wǎng)站建設(shè)、扶風(fēng)網(wǎng)站制作、扶風(fēng)網(wǎng)頁(yè)制作以及扶風(fēng)網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,扶風(fēng)網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到扶風(fēng)省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
響應(yīng)器鏈?zhǔn)且幌盗嘘P(guān)聯(lián)的 UIResponder 對(duì)象,例如,UIViewController 和 UIApplication,這些對(duì)象用于處理事件或?qū)⑻幚硎录呢?zé)任轉(zhuǎn)移給 App 中的其他響應(yīng)器。要進(jìn)一步了解響應(yīng)器和響應(yīng)器鏈,請(qǐng)參閱“使用響應(yīng)器和響應(yīng)器鏈處理事件”。
檢測(cè)按鍵操作
要檢測(cè)用戶在實(shí)體鍵盤上的按鍵操作,請(qǐng)覆蓋 App 委托或主視圖控制器等 App 響應(yīng)器對(duì)象中的 pressesBegan(_:with:)。
要確定用戶按下的按鍵,請(qǐng)遍歷整個(gè)按鍵事件集合,檢查每個(gè)按鍵事件的 key 屬性。使用 charactersIgnoringModifiers 來(lái)確定按鍵的文本值,以及響應(yīng)器是否應(yīng)該處理按鍵操作。如果響應(yīng)器沒(méi)有處理按鍵操作,請(qǐng)?jiān)诔愔姓{(diào)用 pressesBegan(_:with:),將按鍵事件發(fā)送到活躍響應(yīng)器鏈中的下一個(gè)響應(yīng)器。
例如,在下面的代碼摘錄中,當(dāng)用戶按下左箭頭鍵和右箭頭鍵時(shí),游戲人物會(huì)向后和向前跑動(dòng):
override func pressesBegan(_ presses: Set, with event: UIPressesEvent?) { // Run backward or forward when the user presses a left or right arrow key. var didHandleEvent = false for press in presses { guard let key = press.key else { continue } if key.charactersIgnoringModifiers == UIKeyCommand.inputLeftArrow { runBackward() didHandleEvent = true } if key.charactersIgnoringModifiers == UIKeyCommand.inputRightArrow { runForward() didHandleEvent = true } } if didHandleEvent == false { // Didn't handle this key press, so pass the event to the next responder. super.pressesBegan(presses, with: event) } }
檢測(cè)松開(kāi)按鍵操作
覆蓋響應(yīng)器的 pressesEnded(_:with:) 方法可以檢測(cè)用戶何時(shí)松開(kāi)按鍵。要獲取關(guān)于按鍵的信息,請(qǐng)完成與檢測(cè)按鍵操作時(shí)相同的操作;檢查 presses 集合中每個(gè)按鍵事件的 key 屬性。例如,在下面的代碼摘錄中,當(dāng)用戶松開(kāi)左箭頭鍵或右箭頭鍵時(shí),游戲人物會(huì)停止向特定方向跑動(dòng):
override func pressesEnded(_ presses: Set, with event: UIPressesEvent?) { // Stop running when the user releases the left or right arrow key. var didHandleEvent = false for press in presses { guard let key = press.key else { continue } if key.charactersIgnoringModifiers == UIKeyCommand.inputLeftArrow { stopRunningBackward() didHandleEvent = true } if key.charactersIgnoringModifiers == UIKeyCommand.inputRightArrow { stopRunningForward() didHandleEvent = true } } if didHandleEvent == false { // Didn't handle this key press, so pass the event to the next responder. super.pressesBegan(presses, with: event) } }
文章名稱:創(chuàng)新互聯(lián)IOS教程:處理實(shí)體鍵盤上的按鍵操作
文章源于:http://www.5511xx.com/article/coicoee.html


咨詢
建站咨詢
