Objective c 如何在特定位置将窗口显示为图纸

Objective c 如何在特定位置将窗口显示为图纸,objective-c,macos,cocoa,cocoa-sheet,Objective C,Macos,Cocoa,Cocoa Sheet,我有一个这样的窗口,有3个子视图,每个都有按钮。点击这些-我需要显示工作表 通过使用此代码,板材位于窗口的中心 - (IBAction)closeSubWindow:(id)sender{ [NSApp endSheet:self.subWindow]; [self.subWindow orderOut:nil]; } - (IBAction)showSubWindow:(id)sender { [NSApp beginSheet:self.subWind

我有一个这样的窗口,有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];
}
是否有任何选项或方式显示特定坐标处的图纸?

编辑:


我当前的实现是使用
nspover
。我可以将此
nspover
设置为类似于图纸的动画吗?

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


popover也是一种模式,就像工作表一样,因此,功能上它们非常相似,但您可以更自由地确定其位置。

看看
NSWindow
委托方法

目前它是使用nspover实现的。但需要类似于图纸的动画效果。因此,我正在寻找工作表之类的东西。然后你必须滚动你自己的实现。这看起来很有希望,我明天会检查。而且会更新你的。它成功了。我需要另一个帮助。是否有任何方法可以减少工作表模态。正如我所需要的,工作表应该是空的,上面没有按钮。要关闭工作表,V按钮的工作方式类似于从^切换/切换,反之亦然。在实际实现中,按钮上有图像。不,您需要自己滚动(或者按照Mike的建议使用popover)。