0

iOSの画面からキーボードを削除するオプションはありますか?このコンテキストでは、Tabris(http://developer.eclipsesource.com/tabris/)とJavaを使用しています。

私の問題は、2つのテキストフィールドを使用してユーザーとパスワードの組み合わせを入力することです。これらのテキストフィールドに入力し、ボタンを押してiOSからキーボードを続行すると、常に表示されますが、キーボードが表示されないようにします。どこかをクリックして初めてキーボードが消えます。

4

2 に答える 2

0

UITextFieldデリゲートを設定し、そこに次のメソッドを追加しましたか?

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
}
于 2012-12-03T12:38:50.453 に答える
0

Tabris では、キーボードを使用するコントロール ( org.eclipse.swt.widgets.Text など) にフォーカスを設定することにより、プログラムでキーボードを「開く」ことができます。キーボードを非表示にするには、Textfield の親コンポジットのように、フォーカスをキーボードを必要としないコントロールに設定するだけです。

あなたの場合、ボタンのSelectionListenerにすべての行を追加して、テキストフィールドの親にフォーカスを設定し、ログイン手順を開始します。

Focus メカニズムを再生して理解するためのコードを次に示します。

public class FocusTest implements EntryPoint {

public int createUI() {
    Display display = new Display();
    Shell shell = new Shell(display, SWT.NO_TRIM);
    shell.setMaximized(true);
    GridLayoutFactory.fillDefaults().applyTo(shell);
    createContent(shell);
    shell.open();
    //while (!shell.isDisposed()) {
    //  if (!display.readAndDispatch()) {
    //      display.sleep();
    //  }
    //}
    return 0;
}

private void createContent(final Composite parent) {
    Button buttonSingleText = new Button(parent, SWT.PUSH);
    buttonSingleText.setText("Focus on SingleText");
    GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(buttonSingleText);

    Button buttonMultiText = new Button(parent, SWT.PUSH);
    buttonMultiText.setText("Focus on MultiText");
    GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(buttonMultiText);

    Button buttonNoFocus = new Button(parent, SWT.PUSH);
    buttonNoFocus.setText("Loose Focus");
    GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(buttonNoFocus);

    final Text singleText = new Text(parent, SWT.SINGLE);
    GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(singleText);

    final Text multiText = new Text(parent, SWT.MULTI);
    GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(multiText);

    buttonSingleText.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            singleText.setFocus();
        }
    });
    buttonMultiText.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            multiText.setFocus();
        }
    });
    buttonNoFocus.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            parent.setFocus();
        }
    });
}
}
于 2012-12-11T08:47:10.163 に答える