Могу ли я заставить TextInput отображать «цифровую» клавиатуру в Kivy при фокусировке — с программной клавиатурой iOS?

#python #ios #keyboard #kivy #widget

Вопрос:

На главной странице моего приложения kivy для iOS пользователь должен ввести слово и число в два отдельных поля ввода текста. Я искал, но не смог найти способ заставить программную клавиатуру iOS отображать клавиатуру «numbers», когда это конкретное поле ввода текста сфокусировано.

Я чувствую, что я вроде на правильном пути, но делаю это неправильно. Я пробовал:

 from kivy.uix.behaviors import FocusBehavior

def __init__(self, **kwargs):
    super(MainApp, self).__init__(**kwargs)
    FocusBehavior.input_type('numbers')
 

Но я не знаю, как внедрить это в свой код, чтобы он действительно работал. Я не хочу, чтобы он устанавливался глобально, потому что большинство других текстовых вводов в приложении на самом деле являются текстовыми.

Я попытался использовать его в своем реальном виджете TextInput следующим образом:

 #:import FocusBehavior.input_type kivy.uix.behaviors

    TextInput:
        id: eta1
        markup: True
        input_type: 'number'  # here is where i'm attempting
        multiline: False
        font_size: '20sp'
        hint_text: "ETA 1 in UTC"
        opacity: 1 if self.text else .7
        padding_y: [self.height / 2.0 - (self.line_height / 2.0) * len(self._lines), 0]
        padding_x: [10, 0]
        text: self.text.upper() if self.text is not None else ''
        size_hint: .4, .08
        pos_hint: {"top": .775, "center_x": .71}
 

Я просматривал документы Kivy здесь, чтобы попытаться понять, как его использовать, и, скорее всего, я ошибаюсь. Я тоже посмотрел здесь и тоже ничего не нашел. Один пост, похоже, подумал, что, возможно, он не работает с программными клавиатурами iOS?? Это правда??

Пожалуйста, помогите мне, так как я очень застрял.

Комментарии:

1. Я не совсем уверен в вашем случае, но, может быть, это может помочь?

2. Я видел это раньше, но считаю, что это для создания вашей собственной виртуальной клавиатуры, а не для отображения цифровой стороны клавиатуры iOS, к сожалению.