2010-11-26 8 views
6

を隠すことなく、私はコピーをサポートし、次のコードを使用して編集メニューを表示するビューを持っている:becomeFirstResponderキーボード

if ([self becomeFirstResponder]) { 
    // bring up edit menu. 
    UIMenuController *theMenu = [UIMenuController sharedMenuController]; 
    [theMenu setTargetRect:[self _textRect] inView:self]; 
    [theMenu setMenuVisible:YES animated:YES]; 
} 

問題がbecomeFirstResponderが呼び出されたときに、キーボードがのが隠され得ること、です。正しい動作の良い例は、SMSアプリケーションです。返信ボックスが表示され、返信ボックスのフォーカスが失われても、キーボードは定位置にとどまり、メッセージをダブルタップします。また、バブルが選択解除されると、返信ボックスにもフォーカスが戻されます。

答えて

5

残念ながら、アップル社はサードパーティのアプリケーションでは利用できないことをたくさんすることができます。

iOS 3.2以降では、最初のレスポンダになるためのビューをキーボード入力で受け入れることができます。

UIResponderのサブクラスは、単純なテキスト入力を実装するためにこのプロトコルを採用することができます:あなたは、あなたのビュークラスがUIKeyInput protocolを採用したことにより、それを行います。このサブクラスのインスタンスが最初のレスポンダである場合、システムキーボードが表示されます。

このプロトコルは、実装する必要がある3つのメソッドで構成されています。あなたの場合、おそらくこれらのメソッドで受け取った入力をテキストフィールドに適用し、それを最初のレスポンダに再び設定します。私はこれを試していないが、それは動作するはずです。

+0

私はこれを試しました。私は3つのメソッドを実装していますが、テキストフィールドにはまだカーソルが点滅しています。 –

+0

この回答は間違っています。解決策は機能しません。なぜそれが票を持っているのか分かりません。 – RaffAl

+0

ありがとう! UIKeyInputプロトコルを実装することで、キーボードの滞在が実現しました。 –

関連する問題