チャットインターフェイスを備えたiOS8用のアプリを更新しようとしていますが、新しいQuicktypeキーボードはテキストビューを非表示にするため、プログラムまたはインターフェイスビルダーでオフにします。
どういうわけか、ユーザーだけがデバイス設定でオフにできますか?
UITextfield
でこの問題を解決する質問/回答があることは知っていますが、UITextView
でそれを行う必要があります。
この例に示すように、4Sのような小さな画面でテキストをブロックできるUITextViewのキーボード候補/オートコンプリート/ QuickTypeを無効にすることができます
次の行で:
myTextView.autocorrectionType = UITextAutocorrectionTypeNo;
さらに、4Sをターゲットにするなど、特定の画面でのみこれを実行したい場合
if([[UIDevice currentDevice]userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
if (screenHeight == 568) {
// iphone 5 screen
}
else if (screenHeight < 568) {
// smaller than iphone 5 screen thus 4s
}
}
完全を期すために、Interface Builder
でもこれを実行できることを追加したいと思います。
UITextField
またはUITextView
でキーボードの提案を無効にするには、Attributes Inspector
でCorrection
をNo
に設定します。
次のメソッドを使用してUITextViewカテゴリクラスを作成しました。
- (void)disableQuickTypeBar:(BOOL)disable
{
self.autocorrectionType = disable ? UITextAutocorrectionTypeNo : UITextAutocorrectionTypeDefault;
if (self.isFirstResponder) {
[self resignFirstResponder];
[self becomeFirstResponder];
}
}
もっときれいなアプローチがあればいいのに。また、自動修正モードがDefault
であったと想定しています。これは、すべてのテキストビューで常に正しいとは限りません。
Swift 2:
myUITextField.autocorrectionType = UITextAutocorrectionType.No
Swift 4.xの場合:
myUTTextField.autocorrectionType = .no