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";