我可以在按下文本输入中的“返回”键时自动按下按钮吗?

时间:2019-10-15 12:16:44

标签: python kivy

我目前正在与Kivy一起开发应用程序。 在一个屏幕上,我有一个TextInput和一个按钮。我可以输入文字并按按钮进入下一个屏幕。 我的问题是:有没有办法在输入文字后直接按下“返回”键,然后自动按下按钮而无需实际触摸?

还有一个小问题:我放

focus: True

在TextInput下,因此当我进入屏幕时它将立即聚焦textinput。但这是行不通的。经过一些Google搜索之后,很多人说这是一个错误,尽管这些评论还很陈旧(不到1年)。这仍然是错误的还是有解决方案?

TextInput:
    focus: True
    pos_hint: {'x': .3, 'top': .8}
    size_hint: .4, .05
    id: search
    multiline:False

Button:
    text: 'back'
    font_size: 25
    size_hint: .3, .15
    pos_hint: {'x':.15, 'top': .4}
    on_release:
         app.root.current = 'main'
         root.manager.transition.direction = 'right'

1 个答案:

答案 0 :(得分:0)

您应该在TextInput中使用它:

on_text_validate:
     app.root.current = 'main'
     root.manager.transition.direction = 'right'

对于自动对焦,我使用子类。
在.py中,我为TextInput创建了一个新类,并使用了它。.

class MyTextInput(TextInput):
    """ TextInput with auto-focus
    """
    def __init__(self, **kwargs):
        super(MyTextInput, self).__init__(**kwargs)

        def set_focus(dt):
            self.focus = True
        Clock.schedule_once(set_focus, .1)