2017-06-13 81 views
2

我有使用roPinEntryDialog Roku机上的应用程序,就像这样:是否可以显示在roPinEntryDialog中输入的数字?

function EnterCode() as Boolean 
    screen = CreateObject("roPinEntryDialog") 
    mp = CreateObject("roMessagePort") 
    screen.SetMessagePort(mp) 
    screen.SetNumPinEntryFields(8) 
    screen.SetTitle("Enter Code") 
    screen.AddButton(0, "Next") 
    screen.AddButton(1, "Cancel") 
    screen.Show() 

    while true 
     msg = wait(0, screen.GetMessagePort()) 
     if type(msg) = "roPinEntryDialogEvent" 
      print "Show Code: Index: ";msg.GetIndex();" Data: ";msg.GetData() 
      if msg.isScreenClosed() 
       return false    
      else if msg.isButtonPressed() 
       token=screen.Pin() 
       print "token: ";token 
       if msg.GetIndex() = 0 then return true 
       if msg.GetIndex() = 1 then return false 
      endif 
     endif 
    end while 
end function 

当我使用这个对话框,它显示了输入的数字为星号。我试过使用,screen.SetSecureText(false),但不幸的是,这只适用于文本框。有没有办法显示输入的数字?如果没有,是否有另外的数字对话框,我应该尝试这样做?

回答

2

Roku在这里工作。

卡西迪,请注意,old SDK1 visual screen components are actually deprecated和包含的组件将导致渠道更新失败我们的认证截至2018年1月。此外,组件将在第二年从固件本身中删除。 roPinEntryDialog包含在不推荐使用的组件列表中。

虽然仍然需要使用SDK1 UI提交频道更新,但您最终必须更新SceneGraph中的UI。鉴于您已经在使用频道,现在可能是转换频道的理想时间。

如上所述,我建议使用PinPad,PinDiaglog,Keyboard或KeyboardDialog节点。如果你确实习惯于使用旧的SDK1模型,那么你可以使用roKeyboardScreen,但你可能会冒用户输入字母和数字的风险。

+0

谢谢!是的,不幸的是,在这个特殊的项目中,我无法使用SceneGraph。这就是我所需要的,我只是使用常规键盘并使用正则表达式进行验证。谢谢! –

0

roPinEntryDialog不支持。如果您正在编写SceneGraph应用程序,则可以使用PinPad小部件或MiniKeyboard

+0

不幸的是,我使用的是旧版本的Roku dev,它必须使用BrightScript和不使用SceneGraph来完成。 –

相关问题