5

내 앱에는 사용자가 화학 공식 (H2O, Na^2 +)을 입력해야하며, 아래 첨자와 위 첨자로 인해 타이핑 과정이 혼란 스럽기 때문에 맞춤 키보드를 만들기로 결정했습니다.UIControl을 서브 클래스 화하지 않고 iOS 용 사용자 정의 텍스트 필드와 키보드를 만들 수 있습니까?

사용자가 숫자를 아래 첨자로 입력하면 화면에 아래 첨자로 표시되어야합니다. 내가 이것을 찾은 유일한 방법은 분명히 CoreText에서만 작동하는 NSAttributedString을 사용하는 것입니다. UITextField에서 CoreText를 사용할 수 없으므로 맞춤 텍스트 필드도 만들어야합니다. 나는 UITextView를 조사하고 있었지만, 문서는 글꼴 스타일이 텍스트 전체에 일관성이 있어야한다는 것을 읽었습니다. 즉, 하위 스크립트를 가질 수 없다는 의미입니다.

두 경우 모두 UIControl의 하위 클래스를 만들고 처음부터 시작해야합니까? 또는 이미 키보드/텍스트 필드의 속성 중 일부가있는 대체 클래스가 있습니까?

답변

5

예, UIView의 고유 한 하위 클래스를 만들어야합니다.

그러나 당신은 쉽게 canBecomeFirstResponder은 그래서 YES 반환 무시하고 UITapGestureRecognizer 추가하는 UIKeyInput 프로토콜을 채택하여 키보드 입력을 지원할 수 있습니다 : 당신은 사용자가 텍스트의 범위를 선택하고 자동 수정을 사용할 수 있도록 할

[self addGestureRecognizer: 
    [[UITapGestureRecognizer alloc] initWithTarget:self 
              action:@selector(becomeFirstResponder)]]; 

을 더 어렵습니다. 프로토콜 UITextInput을 채택해야합니다. 키보드를 사용자 정의

정말 간단하다 :

  • 중 하나, 당신이 중 하나를 키보드에 부착 된 사용자 정의보기를 표시 할 수 inputAccessoryView,
  • 을 무시, 당신은 inputView은 그래서 사용자 지정보기를 반환 오버라이드 (override)하는 것을 키보드 대신 표시됩니다.
관련 문제