2

在我的程序中,我进行了以下设置:

我在界面生成器中制作了 3 个 NSView在此处输入图像描述

所以 PaintView 是 PlayerView 的子视图,而 ImageView 是 PlayerView 之上的视图。

当程序启动时 ImageView 是隐藏的。PaintView 是透明的,所以我在它下面看到了 PlayerView,但点击发生在 PaintView 上。到现在为止还挺好。

现在,我想要完成的是,当我按下按钮时,PlayerView 变为隐藏,ImageView 变为可见,PaintView 变为它的子视图。所以我可以通过透明的PaintView看到ImageView,但仍然可以点击PaintView。

到目前为止,我的方法是这样的:

// on the app start

[ImageView setHidden: YES];

// on the button press
[PaintView removeFromSuperview];
[PlayerView setHidden:YES];
[ImageView setHidden:NO];
[ImageView addSubview:PaintView positioned:NSWindowAbove relativeTo:nil];

不幸的是,这并没有给我想要的结果。ImageView 在最上面,所以我不能点击 PaintView。

有谁知道我做错了什么?!任何形式的帮助都非常感谢!

谢谢!

4

1 回答 1

2

removeFromSuperview 释放该对象及其包含的所有内容。在您尝试将其添加到另一个视图时,检查 PaintView 是否为零。

于 2013-04-25T02:39:41.423 回答