So, I have made a class 'TEXT BOX'. It has a Boolean variable used to track its state (active/inactive). It also has some methods to input and display the text on the screen and also to remove text on pressing backspace. For some reason, it doesn't seem to respond. Can anyone help explain it?
    """
    A Textbox Class
    """
    def __init__(self, x: int, y: int, text_height: int, padding: int, length: int, inactive_colour: tuple,
                 active_colour: tuple, border_thickness: int):
        self.x = x
        self.y = y
        self.padding = padding
        self.text_height = text_height
        self.length = length
        self.inactive_colour = inactive_colour
        self.active_colour = active_colour
        self.border_thickness = border_thickness
        self.rect = pygame.Rect(self.x, self.y, self.length, self.text_height + self.padding)
        self.active = False
        self.text = ''
        self.font = pygame.font.SysFont("Segeo UI", self.text_height)
    def draw_box(self, screen):
        if self.active:
            pygame.draw.rect(screen, self.active_colour, self.rect, width=self.border_thickness)
        else:
            pygame.draw.rect(screen, self.inactive_colour, self.rect, width=self.border_thickness)
    def render_text(self, screen):
        display_text = self.font.render(self.text, True, (255, 255, 255))
        text_pos = (self.x + self.padding, self.y + self.padding)
        screen.blit(display_text, text_pos)
        self.draw_box(screen)
    def get_text(self):
        return self.text
    def input_text(self):
        for event in pygame.event.get():
            if event.type == pygame.MOUSEBUTTONDOWN and not self.active:
                self.active = self.rect.collidepoint(pygame.mouse.get_pos())
            elif self.active and event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RETURN:
                    self.active = False
                elif event.key == pygame.K_BACKSPACE:
                    self.text = self.text[:-1]
                    print(self.text)
                else:
                    self.text = self.text + event.unicode
                    print(self.text)``` 
