我是macOS应用程序开发的新手。 我有一个主窗口和一个名为ImageSetter的自定义窗口,都具有windowcontroller。 在主窗口中,我有一个按钮,其作用是通过以下方式打开新窗口:
ImageSetter *anImageSetter = [[ImageSetter alloc] initWithWindowNibName:@"ImageSetter"];
[anImageSetter showWindow:self];
在ImageSetter的窗口上,我想附加一个按钮,其功能是关闭ImageSetter窗口。我尝试使用
[aButton setTarget:self];
[aButton setAction:@selector(closeItself)];
和
- (void)closeItself{
[self.window close];
}
在ImageSetter的实现中。 但是我发现无法使用该按钮将其关闭。 救命! 谢谢。
答案 0 :(得分:1)
首先,标准窗口在标题栏中已经有一个按钮将其关闭。如果可能的话,应该使用标准控件。
如果窗口中有一个按钮,而您只想关闭其窗口,则只需在响应者链上发送performClose:
消息即可:
// [aButton setTarget:nil/* first responder */]; -- already nil, nothing to set
[aButton setAction:@selector(performClose:)];
该按钮会将-performClose:
消息发送到实现该消息的响应者链中的第一个对象,在您的情况下,该对象应该是包含该按钮的窗口。
如果要明确说明目标,可以直接设置它:
[aButton setTarget:aButton.window];