From ae526ecddf47b1d9002376e0750cb623cab68b25 Mon Sep 17 00:00:00 2001 From: True Zhuanjia Date: Mon, 23 Mar 2026 12:22:56 +0800 Subject: [PATCH] fixed: soft keyboard brought up by iOS26 system-level action --- VoidLink/Input/ControllerUtil.swift | 21 ++++++++++++++------- VoidLink/Input/StreamView.m | 3 +++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/VoidLink/Input/ControllerUtil.swift b/VoidLink/Input/ControllerUtil.swift index e2ab5a8e..d028759a 100644 --- a/VoidLink/Input/ControllerUtil.swift +++ b/VoidLink/Input/ControllerUtil.swift @@ -76,13 +76,20 @@ import GameController // 单一 gamepad.valueChangedHandler gamepad.valueChangedHandler = { gamepad, element in navigationActionTriggeredPrivate = (gamepad.dpad.up.isPressed - || gamepad.dpad.down.isPressed - || gamepad.dpad.left.isPressed - || gamepad.dpad.right.isPressed - || gamepad.rightThumbstick.xAxis.value != 0 - || gamepad.rightThumbstick.yAxis.value != 0 - || gamepad.leftThumbstick.xAxis.value != 0 - || gamepad.leftThumbstick.yAxis.value != 0) + || gamepad.dpad.down.isPressed + || gamepad.dpad.left.isPressed + || gamepad.dpad.right.isPressed + || gamepad.buttonA.isPressed + || gamepad.buttonB.isPressed + || gamepad.buttonX.isPressed + || gamepad.leftShoulder.isPressed + || gamepad.rightShoulder.isPressed + || gamepad.leftTrigger.value != 0 + || gamepad.rightTrigger.value != 0 + || gamepad.rightThumbstick.xAxis.value != 0 + || gamepad.rightThumbstick.yAxis.value != 0 + || gamepad.leftThumbstick.xAxis.value != 0 + || gamepad.leftThumbstick.yAxis.value != 0) if navigationActionTriggeredPrivate { navigationActionTriggered = true} else { DispatchQueue.global().asyncAfter(deadline: .now() + 0.02) { diff --git a/VoidLink/Input/StreamView.m b/VoidLink/Input/StreamView.m index 920a8da8..75bf128f 100644 --- a/VoidLink/Input/StreamView.m +++ b/VoidLink/Input/StreamView.m @@ -328,6 +328,8 @@ static const double X1_MOUSE_SPEED_DIVISOR = 2.5; [self liftMetalVideoViewIfNeeded:0]; isInputingText = NO; + + [keyInputField removeFromSuperview]; } } @@ -391,6 +393,7 @@ static const double X1_MOUSE_SPEED_DIVISOR = 2.5; [keyboardToggleTip removeFromSuperview]; } else { Log(LOG_D, @"Opening the keyboard"); + [self addSubview:keyInputField]; // Prepare the textbox used to capture keyboard events. keyInputField.delegate = self; keyInputField.text = @"0";