3876877096_Portrait_iPhone-Simple-Pad_Default를 사용하여 키보드 iPhone-Portrait-NumberPad에 대한 유형 4를 지원하는 키 평면을 찾을 수 없습니다.
아이폰과 SDK용 iOS 8 Gold Master를 다운로드했습니다.
앱을 테스트해보니 한 가지를 제외하고는 작동이 잘 됩니다.
사용자가 무언가를 입력하려는 경우 숫자 패드가 나타나는 텍스트 필드가 있으며, 키보드가 나타나면 빈 영역에 사용자 지정 단추가 추가됩니다.
- (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];
}
}
}
}
이것은 지금까지 잘 작동하고 있었습니다.
우선, 경고를 받고 있습니다.
3876877096_Portrait_iPhone-Simple-Pad_Default를 사용하여 키보드 iPhone-Portrait-NumberPad에 대한 유형 4를 지원하는 키 평면을 찾을 수 없습니다.
그러면 사용자 지정 단추도 표시되지 않습니다. 이 두 줄 때문인 것 같습니다.
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
그리고.
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
좋은 의견이라도 있나?
저도 최신 Xcode Beta로 업데이트한 후 이 문제가 발생했습니다.시뮬레이터의 설정이 새로 고쳐져 랩톱(외부) 키보드가 감지되었습니다.단순히 다음을 누르면 됩니다.
iOS 시뮬레이터 -> 하드웨어 -> 키보드 -> 하드웨어 키보드 연결
항목을 선택 취소하면 소프트웨어 키보드가 다시 표시됩니다.
에뮬레이터가 Mac에서 숫자 키패드를 찾으려 하지만 찾을 수 없습니다(MacBook Pro, MacBook Air 및 "일반/소형" 키보드에는 없음).하드웨어 키보드 연결 옵션의 선택을 취소하거나 오류 메시지를 무시하면 응용 프로그램에 부정적인 영향을 미치지 않습니다.
그냥 가기
iOS Simulator -> Hardware -> Keyboard -> Connect Hardware Keyboard 옵션의 선택을 취소합니다.
이렇게 하면 문제가 해결됩니다.
위의 단계를 수행하면 MAC 키보드가 작동하지 않습니다. 시뮬레이터 키보드를 사용해야 합니다.
ios 8에서 xcode를 사용하고 있습니다. 시뮬레이터-> 하드웨어-> 키보드-> 하드웨어 키보드 연결 옵션을 선택 취소하십시오.
이렇게 하면 문제가 해결됩니다.
저도 이런 문제가 있었고 해결책을 찾았습니다.
아래는 iOS 8.0 및 아래 버전에서도 작동할 코드입니다.
iOS 7과 8.0(Xcode Version 6.0.1)에서 테스트했습니다.
- (void)addButtonToKeyboard
{
// create custom button
self.doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
//This code will work on iOS 8.3 and 8.4.
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.3) {
self.doneButton.frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 53, 106, 53);
} else {
self.doneButton.frame = CGRectMake(0, 163+44, 106, 53);
}
self.doneButton.adjustsImageWhenHighlighted = NO;
[self.doneButton setTag:67123];
[self.doneButton setImage:[UIImage imageNamed:@"doneup1.png"] forState:UIControlStateNormal];
[self.doneButton setImage:[UIImage imageNamed:@"donedown1.png"] forState:UIControlStateHighlighted];
[self.doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
int windowCount = [[[UIApplication sharedApplication] windows] count];
if (windowCount < 2) {
return;
}
UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView *keyboard;
for (int i = 0; i < [tempWindow.subviews count]; i++) {
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard found, add the button
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.3) {
UIButton *searchbtn = (UIButton *)[keyboard viewWithTag:67123];
if (searchbtn == nil)
[keyboard addSubview:self.doneButton];
} else {
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES) {
UIButton *searchbtn = (UIButton *)[keyboard viewWithTag:67123];
if (searchbtn == nil)//to avoid adding again and again as per my requirement (previous and next button on keyboard)
[keyboard addSubview:self.doneButton];
} //This code will work on iOS 8.0
else if([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES) {
for (int i = 0; i < [keyboard.subviews count]; i++)
{
UIView *hostkeyboard = [keyboard.subviews objectAtIndex:i];
if([[hostkeyboard description] hasPrefix:@"<UIInputSetHost"] == YES) {
UIButton *donebtn = (UIButton *)[hostkeyboard viewWithTag:67123];
if (donebtn == nil)//to avoid adding again and again as per my requirement (previous and next button on keyboard)
[hostkeyboard addSubview:self.doneButton];
}
}
}
}
}
}
>
- (void)removedSearchButtonFromKeypad
{
int windowCount = [[[UIApplication sharedApplication] windows] count];
if (windowCount < 2) {
return;
}
UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
for (int i = 0 ; i < [tempWindow.subviews count] ; i++)
{
UIView *keyboard = [tempWindow.subviews objectAtIndex:i];
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.3){
[self removeButton:keyboard];
} else if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES) {
[self removeButton:keyboard];
} else if([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES){
for (int i = 0 ; i < [keyboard.subviews count] ; i++)
{
UIView *hostkeyboard = [keyboard.subviews objectAtIndex:i];
if([[hostkeyboard description] hasPrefix:@"<UIInputSetHost"] == YES) {
[self removeButton:hostkeyboard];
}
}
}
}
}
- (void)removeButton:(UIView *)keypadView
{
UIButton *donebtn = (UIButton *)[keypadView viewWithTag:67123];
if(donebtn) {
[donebtn removeFromSuperview];
donebtn = nil;
}
}
이게 도움이 되길 바랍니다.
하지만 저는 여전히 경고를 받고 있습니다.
3876877096_Portrait_iPhone-Simple-Pad_Default를 사용하여 키보드 iPhone-Portrait-NumberPad에 대한 유형 4를 지원하는 키 평면을 찾을 수 없습니다.
이 경고를 무시하고 작동했습니다.당신이 이 경고를 완화할 수 있다면 저에게 알려주세요.
시뮬레이터-> 하드웨어-> 키보드로 이동하여 하드웨어 키보드 연결을 선택 취소합니다.
위의 많은 답변과 동일하지만 시뮬레이터를 종료하고 다시 시작할 때까지 변경되지 않았습니다.xcode 8.2.1 및 Simulator 10.0을 지원합니다.
Xcode 8.1과 iOS 10.1에서도 같은 문제가 있었습니다.제게 효과가 있었던 것은 시뮬레이터-> 하드웨어-> 키보드로 가서 하드웨어 키보드 연결을 선택 취소하는 것이었습니다.
시뮬레이터를 사용하여 앱 실행
iOS Simulator -> Hardware -> Keyboard -> iOS는 OS X와 동일한 레이아웃을 사용합니다.
이렇게 하면 장치에서 앱을 실행하는 사람이 있을 경우 문제가 해결됩니다.
iOS 앱에서 OS X에 연결된 숫자 키패드를 찾을 수 없습니다.따라서 테스트 목적으로만 시뮬레이터에서 하드웨어 키보드 연결 옵션을 선택 취소하기만 하면 됩니다.
Simulator -> Hardware -> Keyboard -> Connect Hardware Keyboard
이렇게 하면 위의 문제가 해결됩니다.
당신도 아래 링크를 봐야 할 것 같습니다.이▁says래요.
bug
에 시대에XCode
포럼 게시물 스레드의 끝에!
두 가지 다른 이유로 동일한 오류 메시지가 표시되므로 디버깅 체크리스트에 추가할 수 있습니다.
Context: 6 파일: Xcode 6.4, iOS: 8.4. 사용자 정의 도구 모음을 추가하고 있었습니다.UIBarButton
는 로하기위로 합니다.UIKeyboardTypeNumberPad
(빠른 속도:UIKeyboardType.numberPad
"및 "완료" 및 "+/"-"완료"입니다다음과 같은 경우에 문제가 발생:
UIT 도구 모음이 속성으로 선언되었지만 명시적으로 할당/초기화하는 것을 잊었습니다.
는 마지막 줄을 , ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
[myCustomToolbar sizeToFit];
홀든의 대답과 같은 가족인 것처럼 들립니다(여기 제 코드: https://stackoverflow.com/a/32016397/4898050) ).
행운을 빌어요
배포 프로비저닝 프로필을 사용할 때도 같은 문제가 있었습니다.개발자 프로필을 사용하는지 확인합니다.
UIT 도구 모음을 사용하지 않고 긴 코드를 사용하는 이유는 무엇입니까?그 경고가 아직도 지속되고 있기 때문에?
UI 도구 모음은 iOS 버전에서 작동합니다. 여기 샘플 코드가 있습니다.
UIToolbar *doneToolbar = [[UIToolbar alloc] initWithFrame:(CGRect){0, 0, 50, 50}]; // Create and init
doneToolbar.barStyle = UIBarStyleBlackTranslucent; // Specify the preferred barStyle
doneToolbar.items = @[
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneEditAction)] // Add your target action
]; // Define items -- you can add more
yourField.inputAccessoryView = doneToolbar; // Now add toolbar to your field's inputview and run
[doneToolbar sizeToFit]; // call this to auto fit to the view
- (void)doneEditAction {
[self.view endEditing:YES];
}
Flutter에서 문제가 발생했습니다. 입력을 클릭해도 키보드가 나타나지 않고 양식 위젯이 Full로 표시되는 위젯을 업그레이드하여 수정했습니다.
하지만 경고는 아직 남아 있습니다.
아마도 당신은 버튼의 프레임을 재설정해야 할 것입니다. 저도 약간의 문제가 있었습니다. 그리고 다음과 같은 키보드 보기를 로그에 기록합니다.
ios8:
"<UIInputSetContainerView: 0x7fef0364b0d0; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7fef0364b1e0>>"
8시 이전:
"<UIPeripheralHostView: 0x11393c860; frame = (0 352; 320 216); autoresizesSubviews = NO; layer = <CALayer: 0x11393ca10>>"
에뮬레이터가 Mac에서 숫자 키패드를 찾으려 하지만 찾을 수 없습니다(MacBook Pro, MacBook Air 및 "일반/소형" 키보드에는 없음).하드웨어 키보드 연결 옵션의 선택을 취소하거나 오류 메시지를 무시할 수 있습니다. 그러면 응용 프로그램에 악영향이 없습니다.
참고: 하드웨어 키보드 연결을 선택 취소하면 Mac 키보드가 시뮬레이터에서 작동하지 않습니다.
좋아요, 여기 제가 유사한 오류가 발생했을 때 iOS 9, iOS 8 및 그 이하의 앱에서 보여주고 작동하기 위한 '완료' 버튼을 만드는 간단한 해결책이 있습니다.앱을 실행하고 'View's Hierarchy'(즉, 앱이 장치에서 실행되는 동안 디버그 영역 표시줄에서 'View Hierarchy' 아이콘을 클릭하고 Storyboard에서 보기를 검사)를 통해 키보드가 iOS 8 이하 버전과 비교하여 iOS 9의 다른 창에 표시되며 이를 설명해야 합니다.키보드에 단추 추가
- (id)addButtonToKeyboard
{
if (!doneButton)
{
// 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];
}
NSArray *windows = [[UIApplication sharedApplication] windows];
//Check to see if running below iOS 9,then return the second window which bears the keyboard
if ([[[UIDevice currentDevice] systemVersion] floatValue] < 9.0) {
return windows[windows.count - 2];
}
else {
UIWindow* keyboardWithDoneButtonWindow = [ windows lastObject];
return keyboardWithDoneButtonWindow;
}
}
이렇게 하면 키보드에서 키보드 단추를 제거할 수 있습니다.
- (void)removeKeyboardButton {
id windowTemp = [self addButtonToKeyboard];
if (windowTemp) {
for (UIView *doneButton in [windowTemp subviews]) {
if ([doneButton isKindOfClass:[UIButton class]]) {
[doneButton setHidden:TRUE];
}
}
}
}
언급URL : https://stackoverflow.com/questions/25842168/cant-find-keyplane-that-supports-type-4-for-keyboard-iphone-portrait-numberpad
'programing' 카테고리의 다른 글
YesNoCancel이 있는 MessageBox - No & Cancel이 동일한 이벤트를 트리거함 (0) | 2023.06.02 |
---|---|
Response.redirect에서 "스레드가 중단되었습니다."를 발생시킵니다. (0) | 2023.06.02 |
Windows에서 "make"를 설치하고 사용하는 방법은 무엇입니까? (0) | 2023.06.02 |
Windows Azure의 클럭 동기화 품질? (0) | 2023.06.02 |
TypeError: 정의되지 않은 속성을 읽을 수 없습니다('html' 읽기). (0) | 2023.06.02 |