2014-05-18 3 views
3

My app's virtual keyboard for emojis is looking really messed up.이모티콘 키보드 레이아웃이 제대로 그리기되지 않고, 내가 테스트 많은 이모티콘

키보드가 내 휴대 전화에서 다른 모든 응용 프로그램에 완벽하게 정상적인 모습뿐만 아니라, 새로운 프로젝트가 없습니다. 코드는 간단합니다 :

UITextField *textField = [UITextField new]; 
[otherView addSubview:textField]; 
[textField becomeFirstResponder]; 

UITextField 또는 UITextView를 사용하면 상관 없습니다. 이 문제가 발생할 수있는 요인은 무엇입니까?

일부 검색어 나는 (이 문제가 다른 사람들을 위해)이 질문을하기 전에 시도 : W3C 아이콘 자리 버그 uikeyboard

답변

1

를 키보드가 올바르게 다시 작동 시작할 때까지 내가 파일을 제거하여 그것을 알아 냈다! 정보가있다

이 나는 ​​+(NSString*)stringWithUnichar:(unichar)value; 분명히 이모티콘 UIKeyboard에서 사용하는 개인 방법이었다라는 메서드 (내 는 NSString 카테고리에서).

이 메서드의 이름을 +(NSString*)unicharToString:(unichar)value;으로 변경하면 이모티콘은 모두 복원되지만 페이지 번호 표시기 (키보드 상단의 점)는 여전히 잘못 배치되었습니다.

내가 더 보니 내 UIView 카테고리도 간섭하는 방법 이름이 있습니다. 이름은 - (void) setOrigin:(CGPoint)origin;입니다. 어쨌든 카테고리를 잘못 사용한 것 같습니다 ...

이야기의 도덕 : Apple의 프레임 워크 카테고리에서 메소드 이름을주의하십시오!

다음은 Apple에서 "Naming Methods" 관련 문서입니다. 마지막에는 개인적인 방법에 대해 설명하고 코코아 프레임 워크를 서브 클래스화할 때 메서드에 접두사를 붙이는 것. 애플이 그들 자신의 충고를 따르지 않는 것은 파머이다. 대신 개발자는이 불필요한 부담을 그냥 넘겨줍니다. 예를 들어 NSString의 stringWithUnichar:이라는 이름이 APPLE_stringWithUnichar: 인 경우이 문제는 발생하지 않았을 것입니다.

+0

이 때문에 우리는 클래스와 범주 ​​메서드에 접두사를 사용합니다. – Jasarien

+1

애플이 개인적인 방법으로 접두사를 붙이면 개발자에게 좋지 않을까요? :) – aleclarson

+0

Objective-C가 네임 스페이스를 지원할 수 있다면 좋지 않을까요? :디 – Jasarien