1

ポストイットのようなメモを好きなだけ作成するアプリを開発しています。ビューを追加してviewArrayに入れています

- (IBAction)add:(id)sender {
NoteViewController *noteController = [[NoteViewController alloc]initWithNibName:@"NoteViewController" bundle:nil];

[self.view addSubview:noteController.view];
UIView *myAddedView = (UIView *)[noteController view];

[viewArray insertObject:myAddedView atIndex:0];
noteController.myTextView.tag = viewArray.count;}

ご覧のとおり、addviews にキャストした後でも、noteController の textviews にタグを追加しているので、作成したすべての textviews からコンテンツをエクスポートするまでに textview テキストを取得できます。

- (IBAction)export:(id)sender{
NSData *myData;
NSInteger *cont = (NSInteger *)viewArray.count;
for (UIView *subviewa in [self.view subviews])
{
    if(cont>0)
        if (subviewa.tag == 0)
        myData = (NSData *)[subviewa viewWithTag:1];

        NSLog(@"%@", myData);
    }
    cont--;
 }

[エクスポート] をクリックすると、

<UITextView: 0x684a130; frame = (6 0; 84 92); text = 'my text'; clipsToBounds = YES;
 autoresize = RM+BM; tag = 1; layer = <CALayer: 0x684a310>; contentOffset: {0, 0}>

私の知る限り、これは nsdata です。JSON、キャストを試しましたが、テキスト プロパティにアクセスしようとすると、アプリがクラッシュします。viewarray 内のすべてのオブジェクトから textviews テキストにアクセスするには、助けが必要です。よろしくお願いいたします。

4

1 に答える 1

0

どのビューにも subviews 配列があります。したがって、ビューに textview を追加し、このビューに他のオブジェクトがない場合は、次のように textview を参照します。

[subviewa.subviews objectAtIndex:0];

そして、次のようなテキスト プロパティを取得します。

[(UITextView *)[subviewa.subviews objectAtIndex:0] text]; 

export:配列からすべてのビューを返し、それらのテキストビュー テキストを表示するメソッドのコード:

- (IBAction)export:(id)sender{
    for (UIView *subviewa in [self.view subviews])
    {
        NSLog(@"SUBVIEW %@", (NSData *)subviewa);
        NSLog(@"TEXTVIEW TEXT IN SUBVIEW %@", [(UITextView *)[subviewa.subviews objectAtIndex:0] text]);
    }
}
于 2012-09-20T06:44:16.720 に答える