1

私は、AccessoryViews について学習し、Apple の例をテストしています: KeyBoardAccessory

キーボードを表示せずにアクセサリ ビューを表示しようとしていますが、表示できません :-(

キーボードを避けるために textViewShouldBeginEditing で NO を返し、戻る前に TextView のサイズ変更をアニメーション化していますが、何も起こりません。

私が間違っていることは何ですか?

- (void)viewWillAppear:(BOOL)animated {

    // Make the keyboard appear when the application launches.
    [super viewWillAppear:animated];
    [textView becomeFirstResponder];
}

- (BOOL)textViewShouldBeginEditing:(UITextView *)aTextView {
    NSLog(@"textViewShouldBeginEditing");
    /*
     You can create the accessory view programmatically (in code), in the same nib file as the view controller's main view, or from a separate nib file. This example illustrates the latter; it means the accessory view is loaded lazily -- only if it is required.
     */

    if (textView.inputAccessoryView == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"AccessoryView" owner:self options:nil];
        // Loading the AccessoryView nib file sets the accessoryView outlet.
        textView.inputAccessoryView = accessoryView;    
        // After setting the accessory view for the text view, we no longer need a reference to the accessory view.
        self.accessoryView = nil;
    }

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];

    textView.frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, textView.frame.size.width, textView.frame.size.height - 100);

    [UIView commitAnimations];    

    return NO;
}
4

3 に答える 3

4

inputAccessoryViewは、標準のアップル仮想キーボードの上に表示されるビュー用です。画面キーボードの表示を許可しない場合、inputAccessoryViewも表示されません。

標準のオンスクリーンキーボードではなく、カスタムキーボードのみを表示する場合は、inputAccessoryViewの代わりにinputViewを使用する必要があります。ここでinputViewとinputAccessoryViewの違いを参照してください:http: //developer.apple.com/iphone/library/documentation/uikit/reference/UITextView_Class/Reference/UITextView.html

于 2010-08-06T04:55:07.820 に答える
1

本当にアクセサリ ビューのみが必要な場合は、inputview を高さのないビューに設定する必要があります。

于 2012-06-28T10:42:48.027 に答える
0

Xcode 6 では、ios 8.1 シミュレーターはデフォルトで非表示のキーボードを表示します。(表示するには、「ソフトウェアキーボードの切り替え」を選択する必要があります。)

私のアクセサリ ビューだけが表示されるので、これが気に入っています。

これをプログラムで再現する方法があります(キーボードのオンとオフを切り替え、非表示にしないでください)

ありがとう!

于 2014-11-14T20:16:09.313 に答える