2015-12-08 8 views
6

私のアプリケーションのすべてのテキストフィールドでオートコレクションを無効にしたい。私はUITextFieldのautocorrectionTypeプロパティを知っています。しかし、私はアプリケーションを開発し始めたときにUITextFieldをサブクラス化しませんでした。だから私はすべての私のTextFieldで1行のコードでオートコレクトを無効にするソリューションを探しています。矛盾例外でアプリケーション全体でUITextFieldのオートコレクションを無効にする

[[UITextField appearance] setAutocorrectionType:UITextAutocorrectionTypeNo]; 

結果:次のコード行以来、

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceDark]; 

ではなく、自動補正用:キーボードの外観のために働く

私は[UITextField appearance]を使用してみました、

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Please file a radar on UIKit if you see this assertion.' 
+0

興味深い質問です。多分textFieldDelegateクラスは、textField自体よりも多くのことを持っています。あなたはそのクラスを追加しましたか? – lukaivicev

+0

詳細を教えてください。 'textFieldDelegate'を追加することで何を意味するかわかりません。私はautocorrectionプロパティが 'UITextField'の外観プロキシで実装されていないと思っています。これは残念です:/。おそらく、私は実際に例外メッセージに記載されているように、「UIKitにレーダーをファイルする」べきです。 – Hless

+0

https://developer.apple.com/library/prerelease/tvos/documentation/UIKit/Reference/UITextInputTraits_Protocol/index.html#//apple_ref/occ/intfp/UITextInputTraits/autocorrectionTypeこれらのリンクをチェックしてください:checkこれは以下のとおりです:http://stackoverflow.com/questions/2474824/iphone-issue-disabling-auto-cap-autocorrect-on-a-uitextfield and this http://stackoverflow.com/questions/827310/disable-auto- iphone-text-field-fieldの修正 – lukaivicev

答えて

1

私はサブクラスUITextFieldの

@interface CustomTextField : UITextField 
@end 
@implementation CustomTextField 
- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code 
     [self setAutocorrectionType:UITextAutocorrectionTypeNo]; 

     // same way add all the generalize properties which you require for all the textfields. 
    } 
return self; 
} 

今(コードやストーリーボード内のいずれか)、プロジェクト各地でCustomTextFieldを使用しています。

これが役に立ちます。

+0

答えをありがとう。私はサブクラス化について知っている、私は実際に(キーボードの外観と同じように)オンライナーがなぜ機能しないのだろうと思っていました。サブクラス化は、すべてのUITextFieldの発生を置き換える必要があるため、間違いなく1行の解決策ではありません。 – Hless

+0

これは、 'AutocorrectionType'プロパティが' UIAppearance'の一部とみなされなかったためです(単純にUIではなく、User Experienceになります)。 'UIKeyboardAppearance'は' UI Appearance'に関連しています(UIに表示されます)。 – Mrunal

+0

それはcatagoryを使用して行うことができますか? – AsimRazaKhan

関連する問題