2

我有一个像这样的窗口,有 3 个子视图,每个子视图都有按钮。单击那些-我需要显示工作表。

在此处输入图像描述

在此处输入图像描述

通过使用此代码,工作表位于窗口的中心。

- (IBAction)closeSubWindow:(id)sender{
    [NSApp endSheet:self.subWindow];
    [self.subWindow orderOut:nil];
    
}

- (IBAction)showSubWindow:(id)sender {
    [NSApp beginSheet:self.subWindow
       modalForWindow:self.window
        modalDelegate:self
       didEndSelector:nil
          contextInfo:nil];
}

是否有任何选项或方法可以在特定坐标处显示工作表?

编辑:

我当前的实现是使用NSPopover. 我可以让它NSPopover像工作表一样制作动画吗?

4

2 回答 2

5

看一下NSWindow委托方法-window:willPositionSheet:usingRect:

于 2013-04-29T17:20:17.580 回答
0

一张表是根据您所看到的定义。所以不,没有办法把它放在不同的位置。您可以创建自己的实现,但在您的情况下,最好不要使用工作表,而是使用NSPopover。这是从 OSX 10.7 开始可用的,并且是一种用于显示/输入值的临时视图的好方法。通过使用瞬态(或半瞬态)样式,框架负责管理显示(不再需要时自动隐藏弹出框)。当然,您也可以在其上设置一个确定按钮来提交更改。

弹出框也有点模态,就像工作表一样,所以,在功能上它们非常相似,但是你在它的位置上有更多的自由。

于 2013-04-29T11:23:02.413 回答