Pobrałem iOS 8 Gold Master na iPhone'a i SDK.
Przetestowałem aplikację i działa dobrze, z wyjątkiem jednej rzeczy.
Mam pole tekstowe, w którym pojawi się klawiatura numeryczna, jeśli użytkownik chce coś wpisać, ponadto niestandardowy przycisk jest dodawany do pustego obszaru, gdy pojawia się klawiatura.
- (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];
}
}
}
}
Do tej pory działało dobrze.
Przede wszystkim otrzymuję ostrzeżenie:
Nie można znaleźć klawiatury obsługującej typ 4 dla klawiatury iPhone-Portrait-NumberPad; używając 3876877096_Portrait_iPhone-Simple-Pad_Default
wtedy ten przycisk niestandardowy również się nie wyświetla, co myślę, że z powodu tych 2 linii:
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
i
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
Jakieś sugestie?
Ja też miałem ten problem po aktualizacji do najnowszej wersji Xcode Beta. Ustawienia w symulatorze zostały odświeżone, więc wykryto klawiaturę laptopa (zewnętrzną). Jeśli po prostu naciśniesz:
Symulator iOS -> Sprzęt -> Klawiatura -> Podłącz klawiaturę sprzętową
aby wpis był odznaczony, klawiatura oprogramowania zostanie ponownie wyświetlona.
źródło
Emulator próbuje znaleźć klawiaturę numeryczną na komputerze Mac, ale jej nie znaleziono (MacBook Pro, MacBook Air i klawiatura „normalna / mała” jej nie mają). Możesz odznaczyć opcję Podłącz klawiaturę sprzętową lub po prostu zignorować komunikat o błędzie, nie będzie to miało negatywnego wpływu na aplikację.
źródło
Po prostu idź do
To rozwiąże problem.
Twoja klawiatura MAC nie będzie działać po wykonaniu powyższego kroku, musisz użyć klawiatury symulatora.
źródło
Używam xcode z ios 8, po prostu odznacz opcję connect harware keyboard w twoim Simulator-> Hardware-> Keyboard-> Connect Hardware Keyboard.
To rozwiąże problem.
źródło
Miałem ten sam problem w Xcode 8.1 i iOS 10.1. To, co zadziałało, to przejście do Symulatora-> Sprzęt-> Klawiatura i odznaczenie opcji Połącz klawiaturę sprzętową.
źródło
Wejdź w Symulator-> Sprzęt-> Klawiatura i odznacz Podłącz klawiaturę sprzętową.
Tak samo jak wiele odpowiedzi powyżej, ALE nie zmieniło się to dla mnie, dopóki nie wyjdę i ponownie uruchomię symulator. xcode 8.2.1 i Simulator 10.0.
źródło
Uruchom aplikację za pomocą symulatora
Symulator iOS-> Sprzęt-> Klawiatura -> iOS używa tego samego układu co OS X
To rozwiąże problem, jeśli ktoś uruchomi swoją aplikację na swoim urządzeniu
źródło
Otrzymałem ten sam komunikat o błędzie z dwóch różnych powodów, więc możesz dodać je do listy kontrolnej debugowania:
Kontekst: Xcode 6.4, iOS: 8.4. Dodawałem pasek narzędzi z niestandardowymi
UIBarButton
s do załadowania za pomocąUIKeyboardTypeNumberPad
(Swift:)UIKeyboardType.numberPad
, a mianowicie „Gotowe” i „+/-”. Miałem ten problem gdy:Mój UIToolbar został zadeklarowany jako właściwość, ale zapomniałem jawnie go przydzielić / zainicjować.
Opuściłem ostatnią linię,
[myCustomToolbar sizeToFit];
która brzmi, jakby była to ta sama rodzina, co odpowiedź Holdena (mój kod tutaj: https://stackoverflow.com/a/32016397/4898050 ).Powodzenia
źródło
W aplikacji na iOS nie można znaleźć klawiatury numerycznej podłączonej do systemu OS X. Wystarczy więc odznaczyć opcję podłączenia klawiatury sprzętowej w symulatorze, w następującej ścieżce tylko do celów testowych:
To rozwiąże powyższy problem.
źródło
Miałem ten sam problem podczas korzystania z profilu informacyjnego dystrybucji. Sprawdź, czy korzystasz z profilu programisty
źródło
Dlaczego długi kod i nie używać UIToolbar? ponieważ ostrzeżenie jest nadal aktualne?
UIToolbar działa dla dowolnej wersji iOS, oto mój przykładowy kod
źródło
Może powinieneś zresetować ramkę przycisku, ja też miałem jakiś problem i nsloguj widok klawiatury tak:
ios8:
before8:
źródło
Okay, oto prosta poprawka, aby przycisk „gotowe” wyświetlał się i działał w aplikacji w systemie iOS 9, iOS 8 i starszym, gdy otrzymałem podobny błąd. Można to zaobserwować po uruchomieniu aplikacji i przejrzeniu jej za pośrednictwem `` Hierarchii widoku '' (tj. Kliknięcia ikony `` Wyświetl hierarchię '' na pasku Obszar debugowania, gdy aplikacja jest uruchomiona na urządzeniu i sprawdzeniu widoków w Storyboard), że klawiatura jest wyświetlana różne okna w iOS 9 w porównaniu z iOS 8 i niższymi wersjami i należy je uwzględnić. addButtonToKeyboard
I tak możesz usunąćKeyboardButton z klawiatury, jeśli chcesz.
źródło