そこで、iPhone である種のフォームを作成する方法を探しています。たとえば、3 つのテキストフィールドを追加し、最初のテキストフィールドをクリックして何かを書き込んだときに、次を押すと次のテキストフィールドに移動できるようにしたいと考えています。
リンク: http://shrani.si/f/3U/lB/3Nl9qXha/primer.png
Webフォームに記入する場合のようなことをしたいです。
そこで、iPhone である種のフォームを作成する方法を探しています。たとえば、3 つのテキストフィールドを追加し、最初のテキストフィールドをクリックして何かを書き込んだときに、次を押すと次のテキストフィールドに移動できるようにしたいと考えています。
リンク: http://shrani.si/f/3U/lB/3Nl9qXha/primer.png
Webフォームに記入する場合のようなことをしたいです。
まず、フィールド(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];
}
}
}
ユーザーが[次へ]をクリックすると、次を使用できます。
[nextTextFieldAlong becomeFirstResponder];
...カーソルを次のフィールドに移動します。