デバイス上の自動修正のグローバル設定に関係なく、iPadアプリケーションでテキスト入力の自動修正を無効にしたいと考えています。 APIを使ってこれを行うには良い方法がありますか、アプリ全体を見て、すべてのテキスト入力フィールドを見つけて、各フィールドごとに個別にオフにするだけですか?アプリケーション内でオートコレクトをグローバルにオフにする
答えて
イム申し訳ありませんが、あなたはすべてのテキストフィールドを谷に行くと、それは
あなたはおそらくのUITextFieldのサブクラスを作成し、それをご希望のプロパティを設定することができます無効にする必要があります。 UITextFieldの代わりに、このサブクラス化されたバージョンを使用できます。
これは、まだアプリケーションの実装を開始していない場合に適しています。
私は、悲しいかな、アプリケーションを開始し、自分のテキストフィールドを追加するプロジェクトの他のプログラマーに対して防衛する必要があります。それは良いアイデアですが、私はそれを他の状況で使用します。 –
UITextFieldのカテゴリを追加するのはどうですか?カテゴリ内のオートコレクトを無効にします。 – cocoakomali
method swizzlingのビットを使用して、デフォルトのテキストフィールドのオートコレクションタイプを上書きできます。アプリのデリゲートにまたはどこか他の賢明な:
#import <objc/runtime.h>
// Prevent this code from being called multiple times
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
struct objc_method_description autocorrectionTypeMethodDescription = protocol_getMethodDescription(@protocol(UITextInputTraits), @selector(autocorrectionType), NO, YES);
// (Re)implement `-[UITextField autocorrectionType]` to return `UITextAutocorrectionTypeNO`.
IMP noAutocorrectionTypeIMP = imp_implementationWithBlock(^(UITextField *_self){ return UITextAutocorrectionTypeNo; });
class_replaceMethod([UITextField class], @selector(autocorrectionType), noAutocorrectionTypeIMP, autocorrectionTypeMethodDescription.types);
});
@cocoakomali
は、あなたがのためにカテゴリを作成し、すべてのデフォルト
UITextField
@implementation UITextField (DisableAutoCorrect)
- (instancetype)init {
self = [super init];
if (self) {
[self setAutocorrectionType:UITextAutocorrectionTypeNo];
}
return self;
}
@end
カテゴリクラスの指定された初期化子をオーバーライドしないでください。さらに悪いことに、カテゴリクラスはオーバーライドのためのものではなく、間もなく対立が生じます。 – DZenBot
@DZenBot、カテゴリクラスは一般的にはオーバーライド用ではないと理解していますが、OPはオートコレクトをグローバルにオフにする方法を求めています。残念ながらアップルはこれを行う便利な方法を提供していないようです。おそらくこれを達成するための最も便利で合理的な解決策の1つです。 IMHO、私はこのカテゴリがデフォルトの 'init'の後に' setAutocorrectionType: 'への呼び出しを追加するだけなので、このカテゴリは競合に対して脆弱だとは思わないので、' [[[UITextField alloc] init] setAutocorrectionType:UITextAutocorrectionTypeNo] ' –
- 1. モバイルでの使用時にオートコレクトをオフにする方法
- 2. HighChartsでグローバルにアニメーションをオフにする
- 3. dust.js HTMLエンコードをグローバルにオフにする
- 4. Angular 2アプリケーション内でjQueryをグローバルに使用する
- 5. ASP.NETアプリケーションに対してオートコンプリート=オフをグローバルに設定するにはどうすればよいですか?
- 6. ハンドラ内でメッセージディスパッチをオフにする
- 7. Postgresがグローバルに自動コミットをオフに設定する
- 8. Quillエディタでオートコレクトを実装する
- 9. Railsアプリケーションをグローバルにするには?
- 10. プロジェクト内でモジュールをグローバルにインポートする
- 11. UITextViewのカスタムスペルとオートコレクト
- 12. チェックボックスをオフにするとチェックボックスをすべてオフにするチェックボックスをオフにするチェックボックスをオフにする
- 13. フォームをアプリケーションからグローバルにアクセスできるようにする
- 14. jarアプリケーションでHibernateのログをオフにする方法は?
- 15. Dropwizardアプリケーションでパッケージのロギングをオフにする
- 16. Internet ExplorerでWPF XBAPアプリケーションのセキュリティメッセージをオフにする
- 17. インポートされたアプリケーションのAdminConfigをDjangoプロジェクトでオフにする
- 18. Windows用のuwpアプリケーションでソフトキーボードをオフにする
- 19. .NetアプリケーションでWindowsで印刷画面をグローバルに処理する
- 20. nodejsアプリケーション内で参照される日付は一日オフです
- 21. SelectAllチェックボックスをオフにするチェックボックスをオフにする場合
- 22. 私のアプリケーション設定からキーパッドのサウンドをオフにする
- 23. アプリケーションから自動ロックをオフにする
- 24. Androidの提案をのEditTextが、オートコレクト
- 25. *マルチディスプレイ*をC#でオフにするには?
- 26. ASP.Net MVCアプリケーションのコントローラレベルでsslをオフにすることはできますか?
- 27. .NETアプリケーションでJITコンパイルをオフにすることはできますか?
- 28. 文書内のテキストノードの内容をグローバルに変更する
- 29. $ .get()内でグローバルに偽のキャッシュ
- 30. ionic 2アプリケーションで角型グローバルにアクセスする方法は?
のためのオートコレクトを無効にする
UITextField
のカテゴリを作成することができ、提案されているようそれはもっと良い解決策でなければなりませんIMHO –