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、强制转换......当我尝试访问 text 属性时,应用程序崩溃了。我需要帮助才能从 viewarray 中的所有对象访问 textviews 文本。预先感谢您的帮助。

4

1 回答 1

0

任何视图都有它的子视图数组。因此,当您将 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 回答