Pertanyaan dengan InteractivePopGestureRecognizer saat keyboard ditampilkan

Ini Tangkapan Layar

Di Tampilan B, Saat keyboard ditampilkan dan pop viewController ke Tampilan A dengan InteractivePopGestureRecognizer, keyboard masih tetap di sini :(

Bagaimana membiarkan keyboard bergerak dengan tampilan B? (seperti iMessage atau Facebook Messenger)

ps: Saya mencoba mendapatkan tampilan keyboard dan menambahkan ke self.view, ini berguna, tapi menurut saya itu bukan cara yang baik.

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardDidShown)
                                             name:UIKeyboardDidShowNotification object:nil];

Dan

- (void)keyboardDidShown
{
    UIView * keyboardView = self.textView.inputAccessoryView.superview;
    [self.view addSubview: keyboardView];
}

person kamikuo    schedule 03.12.2013    source sumber


Jawaban (2)


Coba solusi ini:

https://github.com/cotap/TAPKeyboardPop

Ini adalah kategori ringan yang mendengarkan interactivePopGestureRecognizer gerakan dan menganimasikan keyboard yang sesuai.

person m8labs    schedule 06.06.2014

Anda tidak menambahkan keybordView ke tampilan. Jika Anda ingin menampilkan keyboard untuk UITextField/UITextView Anda, panggil menjadiFirstResponder pada objek itu. Dalam contoh Anda seharusnya:

[self.textView becomeFirstResponder];

Jika Anda ingin menyembunyikan keyboard, Anda menelepon:

[self.textView  resignFirstResponder];

Dan jika Anda ingin menyembunyikan keyboard Anda sebelum menutup ViewA, Anda harus memanggilnya di awal InteractivePopGestureRecognizer saat Anda memulai animasi untuk menampilkan ViewB. Semoga bisa membantu.

//DIPERPANJANG

Saya tidak tahu mengapa Anda mencoba menambahkanaksesorisView sebagai subview ke tampilan Anda

- (void)keyboardDidShown
{
    UIView * keyboardView = self.textView.inputAccessoryView.superview;
    [self.view addSubview: keyboardView];
}

Dan saya tidak mengerti mengapa Anda menggunakan pusat notifikasi. Fungsionalitas keyboard tetap ada saat Anda menutup tampilan (sebagai aplikasi iMessage) adalah fungsi standar. Gunakan saja

[self.textView becomeFirstResponder];

ketika Anda ingin menampilkan keyboard dan tidak menelepon

[self.textView  resignFirstResponder];

saat Anda memunculkan pengontrol tampilan Anda. iOS melakukan pekerjaan untuk Anda.

person Greg    schedule 03.12.2013
comment
Maaf mungkin saya kurang menyampaikan dengan jelas. Saya tahu cara menampilkan/menyembunyikan keyboard, dan setelah pengujian saya menemukan itu akan mengirimkan UIKeyboardWillHideNotification secara otomatis ketika ViewA muncul ke ViewB, tetapi keyboard tidak disembunyikan - person kamikuo; 03.12.2013
comment
Saya pikir ini bisa terjadi karena Anda menambahkan keyboardView sebagai subview ke tampilan Anda. Coba ganti dengan [self.textView menjadiFirstResponder]; - person Greg; 03.12.2013
comment
Tidak, menambahkan keyboardView ke self.view adalah sebuah percobaan, bukan alasan - person kamikuo; 03.12.2013
comment
Setelah keyboard ditampilkan dan textField/textView memiliki inputAccessoryView, textView.inputAccessoryView.superview akan menjadi keyboardView, jadi tambahkan ke tampilan saya. - person kamikuo; 03.12.2013
comment
Terima kasih atas kesabarannya :) Saya ambil screenshotnya, semoga bisa menyampaikan pertanyaan saya. lh4.googleusercontent.com/-vpAzSRkfy9A/Up3LBG1ICYI/AAAAAAAAALM/ - person kamikuo; 03.12.2013
comment
Oke, saya mengerti maksud Anda sekarang. Bolehkah saya bertanya mengapa Anda mencoba melakukan ini. Di ViewB, keyboard Anda terhubung ke bidang teks tetapi jika Anda memindahkannya ke ViewA, keyboard tidak akan berguna. - person Greg; 03.12.2013
comment
Oh! Saya tidak ingin melakukan itu. Saya harap saya bisa melakukan hal yang sama dengan iMessage, tapi saya tidak bisa, saya selalu mendapatkan hasil pada tangkapan layar yang benar. - person kamikuo; 03.12.2013
comment
Daripada menambahkan keyboardView ke self.view, coba tambahkan ke superview. - person Greg; 03.12.2013