2011-06-24 11 views
0

ユーザーがキーボードの123ボタンを押して数字キーボードに移動したときを検出できますか?私はキーボードがアルファモードにあるときではなく、数値モードであるときにのみinputaccessoryviewを表示したいと思います。iphoneキーボードの数値モードの検出

ありがとうございます!私はUITextView両方これは、すべての最良の推測であるので、現時点では離れて私のMacからだけど、...

UITextFieldの&

答えて

0

は、どちらもKEYBOARDTYPEプロパティを持っている意味UITextInputTraitsプロトコルを実装します。したがって、オブザーバーをこのプロパティーに追加する必要があります。また、オブザーバーを変更して、その新しいタイプがUIKeyboardTypeNumbersAndPunctuationかどうかを調べることができます。私は、コードに入れ

// In your header 
@property (nonatomic, retain) IBOutlet UITextField *textField 

// In your init or viewDidLoad function 
[textField addObserver:self forKeyPath:@"keyboardType" options:NSKeyValueObservingOptionNew context:nil] 

// Somewhere in your class add the following 
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 
    if (textfield.keyboardType == UIKeyboardTypeNumbersAndPunctuation) { 
     // This is where you'd add your accessoryView 
    } else { 
     // And this is where you'd remove it when the keyboardType changes to 
     // anything other than UIKeyboardTypeNumbersAndPunctuation 
    } 
} 
+0

、viewDidLoadメソッドではオブザーバ、およびクラス内の実際の方法:

は、この試してみて。それはそれを引き起こさない。なぜどんなアイデア? – Zsolt

+0

あなたのペン先のUITextFieldにIBOutletプロパティを接続しましたか? –

+0

私は自分自身でこれを試しました(*私が持っていた最初の機会です*)。残念ながら期待通りに動作しませんでしたが、これは最高の推測でした。 –

関連する問題