iphone - ios 上的 Ionic3 键盘问题

标签 iphone ionic-framework keyboard ionic3

Cordova CLI:6.5.0 ionic 框架版本:3.0.1 ionic CLI 版本:2.2.3 Ionic 应用程序库版本:2.2.1 Ionic 应用程序脚本版本:1.3.0 ios-deploy 版本:未安装 ios-sim 版本: 未安装 操作系统:Windows 7 节点版本:v6.10.2 Xcode版本:未安装

我的 ionic 应用程序的一个屏幕有一个 ionic 搜索栏。 当我的 ionic 应用程序在 iOS 设备上运行时,当用户点击搜索字段时,键盘会按预期出现,但用户无法在不更改屏幕的情况下关闭键盘。

我尝试在 ionic-native Keyboard 类上调用 close() ,但这只会缩小屏幕,以便屏幕底部的选项卡出现在键盘顶部,键盘保持打开状态。

我尝试过使用 onKeyboardShow() 但从未被调用过。

我尝试过将键盘与附件栏一起放置,但这在真实设备上不起作用。 (附件栏不出现)

如果有任何方法可以向键盘添加关闭功能或使返回按钮关闭键盘,那就太好了,否则如果 Keyboard.close() 可以按其应有的方式工作那就太好了。

这是我的页面类的一部分,用于显示我正在正确调用键盘类:

import { Component } from '@angular/core';
import { Validators, FormBuilder, FormGroup } from "@angular/forms";
import { NavController, App, NavParams, AlertController,ModalController,LoadingController   } from 'ionic-angular';
import { Keyboard } from '@ionic-native/keyboard';


import { PressDirective } from "../../components/longpress/longpress";

// Providers
import { ProjectDetailService } from '../../providers/project-detail-service';
import { Globals } from '../../providers/globals';
import { Filters } from '../../providers/filters';

// Pages
import { TabsPage } from '../tabs/tabs';
import { FormPage } from '../form/form';
import { ProjectDetail } from '../project-detail/project-detail';
import { AboutPage } from '../about/about';
import { FiltersPage } from '../filters/filters';

//http://roblouie.com/article/198/using-gestures-in-the-ionic-2-beta/

@Component({
    selector: 'page-list',
    templateUrl: 'list.html'
})
export class ListPage {

    newListItem: FormGroup;
    masterList: any = [];
    list: any = [];
    showAdd:boolean = true;
    showDelete:boolean = true;
    showClear:boolean = true;
    searchQuery:string = "";
    doinglike:boolean = false;
    loading:boolean = true;
    keyboardUp:boolean = false;

    constructor ( public service: ProjectDetailService,
                    public globals: Globals,public filters: Filters,
                    public formBuilder: FormBuilder,
                    public app: App,
                    public navCtrl: NavController,
                    public alertCtrl: AlertController,
                    public modalCtrl: ModalController,
                    private keyboard: Keyboard
                    ,public loadingController: LoadingController ) {

        this.showAdd = this.globals.adminUser;
        this.showDelete = this.globals.adminUser;

console.log("ListPage constructor");

        this.keyboard.close();
        this.keyboard.hideKeyboardAccessoryBar(false);

        this.keyboard.onKeyboardShow().subscribe(data =>
        {
            console.log('keyboard is shown');
            this.keyboardUp = true;
        });

        this.keyboard.onKeyboardHide().subscribe(data =>
        {
            console.log('keyboard is hidden');
            this.keyboardUp = false;
        });
    }

最佳答案

在字段中添加 keyup.enter 事件。例如

 <ion-input type="text" [(ngModel)]="data" (keyup.enter)="hideKeyboard()">             

还有:

 hideKeyboard() {
  // hide keyboard
  this.keyboard.close();
 }

关于iphone - ios 上的 Ionic3 键盘问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44664190/

相关文章:

iphone - 如何使用模型对象代替数组和字典?

mysql - 如何使用 -initWithContentsOfURL 获取 MySQL 查询结果?

css - Ion-content - 具有 3 个具有不同垂直对齐方式的组件

java - 搜索栏未在 Ionic 上显示

javascript - 浏览器中不可见元素的键盘快捷键

ios - 如何在IOS SDK中显示图像的加载进度栏

ios - 在以前的版本上创建 ios7 按钮

android - ionic 未被识别为 cmdlet、函数、脚本文件或可运行程序的名称

linux - XKB_DEFAULT_OPTIONS=grp :shift_caps_switch with more than two keyboard layouts

c++ - C++按下键