MainMenu.xibにあるNSViewのサブクラスである BackgroundView1 という小さなビュー オブジェクトがあります。メインのView Controllerは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];
}
助けてくれてありがとう。