我有一个名为 BackgroundView1 的小视图对象,它是NSView的子类,位于 MainMenu.xib 上。主视图控制器是AppDelegate。此视图对象显示一些绘图。无论如何,我有这个视图对象的以下代码。
// .h
@interface BackgroundView1 : NSView
// .m
@implementation BackgroundView1
- (void)awakeFromNib {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification object:[self window]];
}
- (void) windowDidBecomeKey:(NSNotification *)notification {
[self setNeedsDisplay:YES];
}
- (void)drawRect:(NSRect)rect {
// ...
// ...
}
我想知道当用户单击按钮时,是否有任何方法可以从 AppDelegate 强制刷新此视图对象(BackgroundView1)?我在 AppDelegate 中也有以下代码。
// AppDelegate.h
#import "BackgroundView1.h"
@interface AppDelegate : NSObject
@property (weak) BackgroundView1 *view1;
// AppDelegate.m
- (IBAction)button1Clicked:(id)sender {
BackgroundView1 *view1 = [[BackgroundView1 alloc] init];
[view1 setNeedsLayout:YES];
}
谢谢你的帮助。