gpt4 book ai didi

objective-c - macOS开发中如何关闭新窗口?

转载 作者:行者123 更新时间:2023-12-03 17:09:07 28 4
gpt4 key购买 nike

我是 macOS 应用程序开发新手。我有一个主窗口和一个名为 ImageSetter 的自定义窗口,两者都有窗口 Controller 。在主窗口中,我有一个按钮,其操作是通过以下方式打开一个新窗口:

ImageSetter *anImageSetter = [[ImageSetter alloc] initWithWindowNibName:@"ImageSetter"];
[anImageSetter showWindow:self];

在ImageSetter的窗口上,我想附加一个按钮,其功能是关闭ImageSetter窗口。我尝试使用

[aButton setTarget:self];
[aButton setAction:@selector(closeItself)];

- (void)closeItself{
[self.window close];
}

在ImageSetter的实现中。但我认为我无法使用该按钮关闭它。帮助!谢谢。

最佳答案

首先,标准窗口的标题栏中已经有一个用于关闭它的按钮。如果可能的话,您应该使用标准控件。

如果窗口中有一个按钮,并且您希望该按钮执行的操作就是关闭其窗口,只需向响应者链发送 performClose: 消息即可:

// [aButton setTarget:nil/* first responder */]; -- already nil, nothing to set
[aButton setAction:@selector(performClose:)];

该按钮会将 -performClose: 消息发送到响应者链中实现该消息的第一个对象,在您的情况下,该对象应该是包含该按钮的窗口。

如果你想明确目标,可以直接设置:

[aButton setTarget:aButton.window];

关于objective-c - macOS开发中如何关闭新窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51905622/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com