0

我对仅在 iOS 6 上出现的虚拟键盘有疑问。

我有一个 UITextField 用于从虚拟键盘捕获键盘输入,但在 iOS 6 上它只显示一次,在键盘第一次关闭后它不再显示。

这是我用来显示带有键盘的 TextField 的代码。

if not Assigned( keysTextField ) Then
begin
  keysTextFrame := wndHandle.frame;
  keysTextField := zglCiOSTextField.alloc().initWithFrame(keysTextFrame );
  keysTextTraits := keysTextField;
  with keysTextField, keysTextTraits do
    begin
      setDelegate( appDelegate );
      setAutocapitalizationType( UITextAutocapitalizationTypeNone );
      setAutocorrectionType( UItextAutocorrectionTypeNo );
      setKeyboardAppearance( UIKeyboardAppearanceDefault );
      setReturnKeyType( UIReturnKeyDone );
      setSecureTextEntry( FALSE );
      addTarget_action_forControlEvents( appDelegate, objcselector('textFieldEditingChanged' ), UIControlEventEditingChanged );
    end;
  keysTextField.setText( utf8_GetNSString( Text ) );
  wndHandle.addSubview( keysTextField );
end;

if appFlags and APP_USE_ENGLISH_INPUT > 0 Then
  keysTextTraits.setKeyboardType( UIKeyboardTypeASCIICapable )
else
  keysTextTraits.setKeyboardType( UIKeyboardTypeDefault );

wndHandle.addSubview( keysTextField );
keysTextField.becomeFirstResponder();

这是关闭它的代码:

if Assigned( keysTextField ) Then
  keysTextField.removeFromSuperview();

任何人都知道我可以尝试解决这个问题吗?我第二次检查了 keyTextField.isFirstResponder() 返回 true,所以它应该可以工作(并且在 iOS < 6 中工作)。

谢谢

塞萨尔·瓦根海默

4

1 回答 1

0

修复了更改命令

keysTextField.resignFirstResponder();textFieldShouldEndEditingtextFieldDidEndEditing

于 2013-06-04T02:50:57.707 回答