But now I need it to stay HIGH when I have pressed the button.
You need what to stay HIGH?
Debouncing is not your problem. That fact that you are not detecting transitions is. You need to know when the switch is pressed this time through loop, but was not pressed last time. Obviously, to do that you need a current state variable and a previous state variable. Set the previous state variable to the current state at the end of loop. Read the current state at the top of loop. Compare the current state to the previous state. When they are different, a transition has occurred, from pressed to released or from released to pressed). The current state tells you which way the transition went.