Saya telah mengunduh iOS 8 Gold Master untuk iPhone dan SDK.
Saya menguji aplikasi dan berfungsi dengan baik, kecuali untuk satu hal.
Saya memiliki kolom teks di mana tombol angka akan muncul jika pengguna ingin mengetik sesuatu, selain itu, tombol kustom ditambahkan ke area kosong saat keyboard muncul.
- (void)addButtonToKeyboard
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
// create custom button
UIButton * doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(-2, 163, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
[doneButton addTarget:self action:@selector(saveNewLead:) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
UIWindow * tempWindow = [[[UIApplication sharedApplication] windows]objectAtIndex:1];
UIView* keyboard;
for(int i=0; i<[tempWindow.subviews count]; i++)
{
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard view found; add the custom button to it
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
[keyboard addSubview:doneButton];
} else {
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
}
}
}
Ini bekerja dengan baik sampai sekarang.
Pertama-tama, saya mendapatkan peringatan ini:
Tidak dapat menemukan keyplane yang mendukung tipe 4 untuk keyboard iPhone-Portrait-NumberPad; menggunakan 3876877096_Portrait_iPhone-Simple-Pad_Default
maka tombol ubahsuaian itu juga tidak muncul, yang menurut saya karena 2 baris ini:
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
dan
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
Ada saran?
Saya juga mengalami masalah ini setelah memperbarui ke Xcode Beta terbaru. Pengaturan pada simulator di-refresh, sehingga keyboard (eksternal) laptop terdeteksi. Jika Anda cukup menekan:
Simulator iOS -> Perangkat Keras -> Keyboard -> Hubungkan Keyboard Perangkat Keras
sehingga entri tidak dicentang maka keyboard perangkat lunak akan ditampilkan sekali lagi.
sumber
Emulator mencoba menemukan keypad numerik di mac, tetapi tidak ditemukan (MacBook Pro, MacBook Air, dan keyboard "normal / kecil" tidak memilikinya). Anda dapat membatalkan pilihan Connect Hardware Keyboard atau mengabaikan pesan kesalahan, itu tidak akan berpengaruh negatif pada aplikasi.
sumber
Pergi saja ke
Ini akan memperbaiki masalah tersebut.
Keyboard MAC Anda tidak akan berfungsi setelah melakukan langkah di atas, Anda harus menggunakan keyboard simulator.
sumber
Saya menggunakan xcode dengan ios 8 cukup hapus centang opsi menghubungkan harware keyboard di Simulator-> Perangkat Keras-> Keyboard-> Hubungkan Keyboard Perangkat Keras.
Ini akan menyelesaikan masalah.
sumber
Saya memiliki masalah yang sama di Xcode 8.1 dan iOS 10.1. Apa yang berhasil bagi saya adalah masuk ke Simulator-> Hardware-> Keyboard dan hapus centang Connect Hardware Keyboard.
sumber
Masuk ke Simulator-> Hardware-> Keyboard dan hapus centang Connect Hardware Keyboard.
Sama seperti banyak jawaban di atas TAPI tidak berubah untuk saya sampai saya keluar dan memulai ulang simulator. xcode 8.2.1 dan Simulator 10.0.
sumber
Jalankan aplikasi menggunakan simulator
iOS Simulator-> Hardware-> Keyboard -> iOS menggunakan tata letak yang sama dengan OS X.
Ini akan memperbaiki masalah jika ada orang di luar sana yang menjalankan aplikasi mereka di perangkat mereka
sumber
Saya mendapat pesan kesalahan yang sama karena dua alasan terpisah, jadi Anda dapat menambahkannya ke daftar periksa debugging:
Konteks: Xcode 6.4, iOS: 8.4. Saya menambahkan toolbar dengan custom
UIBarButton
s untuk memuat denganUIKeyboardTypeNumberPad
(Swift :)UIKeyboardType.numberPad
, yaitu "Done" dan "+/-". Saya mengalami masalah ini ketika:UIToolbar saya dideklarasikan sebagai properti, tetapi saya lupa mengalokasikan / memasukkannya secara eksplisit.
Saya telah meninggalkan baris terakhir
[myCustomToolbar sizeToFit];
, yang terdengar seperti keluarga yang sama dengan jawaban Holden (kode saya di sini: https://stackoverflow.com/a/32016397/4898050 ).Semoga berhasil
sumber
Di Aplikasi iOS Anda tidak dapat menemukan Keypad Numerik yang terpasang ke OS X Anda. Jadi, Anda hanya perlu Hapus centang opsi Sambungkan Keyboard Perangkat Keras di Simulator Anda, di jalur berikut hanya untuk tujuan pengujian:
Ini akan menyelesaikan masalah di atas.
sumber
Saya mengalami masalah yang sama saat menggunakan profil penyediaan distribusi. Periksa apakah Anda menggunakan profil pengembang
sumber
Mengapa kode panjang dan tidak menggunakan UIToolbar? sejak peringatan masih ada?
UIToolbar berfungsi untuk semua Versi iOS, berikut kode contoh saya
sumber
Mungkin Anda harus mengatur ulang bingkai tombol, saya juga punya masalah, dan nslog tampilan keyboard seperti ini:
ios8:
before8:
sumber
Oke, inilah perbaikan sederhana untuk menyelesaikan tombol 'selesai' untuk ditampilkan dan berfungsi di aplikasi di iOS 9, iOS 8 dan di bawahnya ketika saya mendapat kesalahan serupa. Itu bisa diamati setelah menjalankan aplikasi dan melihatnya melalui 'View's Hierarchy' (yaitu mengklik ikon 'View Hierarchy' dari bilah Area Debug saat aplikasi berjalan di perangkat dan memeriksa tampilan Anda di Storyboard), bahwa keyboard ditampilkan jendela berbeda di iOS 9 dibandingkan dengan iOS 8 dan versi di bawahnya dan harus diperhitungkan. addButtonToKeyboard
Dan ini adalah bagaimana Anda bisa menghapusKeyboardButton dari keyboard jika Anda mau.
sumber