0

そこで、iPhone である種のフォームを作成する方法を探しています。たとえば、3 つのテキストフィールドを追加し、最初のテキストフィールドをクリックして何かを書き込んだときに、次を押すと次のテキストフィールドに移動できるようにしたいと考えています。

リンク: http://shrani.si/f/3U/lB/3Nl9qXha/primer.png

Webフォームに記入する場合のようなことをしたいです。

4

2 に答える 2

1

まず、フィールド(1〜3)にタグを設定してから、次のようにテキストフィールドにアクセサリビューを設定する必要があります。

[messageView setInputAccessoryView:[self createAccesoryView]];

このような方法を使用して、アクセサリビューを生成できます(これはAppleドキュメントから取得したものです):

    -(UIView*)createAccesoryView{
        UIToolbar *toolbar = [[[UIToolbar alloc] init] autorelease];
        [toolbar setBarStyle:UIBarStyleDefault];
        [toolbar sizeToFit];
        UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Previous", @"Next", nil]];
        [segmentControl setSegmentedControlStyle:UISegmentedControlStyleBar];
        [segmentControl addTarget:self action:@selector(selectNextPrevious:) forControlEvents:UIControlEventValueChanged];
        UIBarButtonItem *select = [[UIBarButtonItem alloc] initWithCustomView:segmentControl];
        UIBarButtonItem *flex = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
        UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneTyping)];
        [toolbar setItems:[NSArray arrayWithObjects:select, flex, done, nil]];
        return toolbar;
    }

その後、selectNextPrevious

-(void)selectNextPrevious:(id)sender{
if ([(UISegmentedControl*)sender selectedSegmentIndex]==0) {
if (activeField.tag>1) {
            [[self.view viewWithTag:activeField.tag-1] becomeFirstResponder];
        }
 else {
        if (activeField.tag<numberOfFields) {
            [[self.view viewWithTag:activeField.tag+1] becomeFirstResponder];
        }
    }

}
于 2012-08-30T14:44:45.247 に答える
1

ユーザーが[次へ]をクリックすると、次を使用できます。

[nextTextFieldAlong becomeFirstResponder];

...カーソルを次のフィールドに移動します。

于 2012-08-30T13:59:14.090 に答える