macOS开发,Objective-C,xib。在另一源文件CommonMethods中的某个方法中回调 主窗口源文件中的reloadWindow方法
时间: 2024-03-15 12:46:47 浏览: 15
如果您想在 macOS 开发中的另一个源文件CommonMethods中的方法中回调主窗口源文件中的`reloadWindow`方法,您可以使用以下步骤:
1. 在主窗口源文件中添加以下方法:
```
- (void)reloadWindow {
NSWindow *mainWindow = [NSApplication sharedApplication].mainWindow;
[mainWindow close];
[mainWindow makeKeyAndOrderFront:nil];
}
```
2. 在CommonMethods.h文件中定义一个协议,并声明`reloadWindow`方法:
```
@protocol MainWindowDelegate
- (void)reloadWindow;
@end
```
3. 在CommonMethods.m文件中,实现您的方法并使用代理来回调主窗口源文件中的`reloadWindow`方法:
```
#import "CommonMethods.h"
@implementation CommonMethods
- (void)yourMethod {
// 实现你的方法
// ......
// 回调主窗口源文件中的reloadWindow方法
if ([self.delegate respondsToSelector:@selector(reloadWindow)]) {
[self.delegate reloadWindow];
}
}
@end
```
4. 在主窗口源文件中,实现`MainWindowDelegate`协议:
```
@interface MainWindowController () <MainWindowDelegate>
@end
@implementation MainWindowController
- (void)viewDidLoad {
[super viewDidLoad];
// 设置代理
CommonMethods *commonMethods = [[CommonMethods alloc] init];
commonMethods.delegate = self;
}
#pragma mark - MainWindowDelegate
- (void)reloadWindow {
[self reloadWindow]; // 调用主窗口源文件中的reloadWindow方法
}
@end
```
这样,就可以在CommonMethods.m文件中的`yourMethod`方法中通过代理回调主窗口源文件中的`reloadWindow`方法了。