NSWindow 在 show/hide 时更新内容
NSWindow update content when show/hide
我在 my.xib 文件中添加了 NSWindow
元素,并向其中插入了一些元素,例如 imageView。然后创建 NSWindow
类型的 class 命名为 customNSWindow
并将这些 class 分配给我创建的 xib 元素 (NSWindow)。现在我需要从另一个 WindowController show/hide customNSWindow。这是通过在 WindowController 上放置一个插座来完成的。
viewController.h
@property (strong) IBOutlet NSWindow *ImageEditWindow;//(custom window)
viewController.mm
-(IBAction)ButtonClick:(id)sender {
if(! [_ImageEditWindow isVisible] ){
[_ImageEditWindow makeKeyAndOrderFront:sender];
}
}
但我不知道如何更新 ImageEditWindow
中的图像,我找不到在我创建的自定义 class 中使用 _ImageEditWindow
插座调用方法的方法。
编辑
这是 NSWindow
的自定义 class
CustomIKImageEditor.h
@interface CustomIKImageEditor : NSWindow
@property (weak) IBOutlet IKImageView *IKImg;
-(void) updateIKImage: (NSImage*)staticImageToEdit;
@end
CustomIKImageEditor.mm
-(void) updateIKImage: (NSImage*)staticImageToEdit {
NSDictionary* _imageProperties;
CGImageRef source = [self CGImageCreateWithNSImage: staticImageToEdit];
_imageProperties = NULL;
[_IKImg setImage: source imageProperties: NULL];
}
这一行:
@property (strong) IBOutlet NSWindow *ImageEditWindow;//(custom window)
应该是:
@property (strong) IBOutlet CustomIKImageEditor *ImageEditWindow;//(custom window)
我在 my.xib 文件中添加了 NSWindow
元素,并向其中插入了一些元素,例如 imageView。然后创建 NSWindow
类型的 class 命名为 customNSWindow
并将这些 class 分配给我创建的 xib 元素 (NSWindow)。现在我需要从另一个 WindowController show/hide customNSWindow。这是通过在 WindowController 上放置一个插座来完成的。
viewController.h
@property (strong) IBOutlet NSWindow *ImageEditWindow;//(custom window)
viewController.mm
-(IBAction)ButtonClick:(id)sender {
if(! [_ImageEditWindow isVisible] ){
[_ImageEditWindow makeKeyAndOrderFront:sender];
}
}
但我不知道如何更新 ImageEditWindow
中的图像,我找不到在我创建的自定义 class 中使用 _ImageEditWindow
插座调用方法的方法。
编辑
这是 NSWindow
的自定义 classCustomIKImageEditor.h
@interface CustomIKImageEditor : NSWindow
@property (weak) IBOutlet IKImageView *IKImg;
-(void) updateIKImage: (NSImage*)staticImageToEdit;
@end
CustomIKImageEditor.mm
-(void) updateIKImage: (NSImage*)staticImageToEdit {
NSDictionary* _imageProperties;
CGImageRef source = [self CGImageCreateWithNSImage: staticImageToEdit];
_imageProperties = NULL;
[_IKImg setImage: source imageProperties: NULL];
}
这一行:
@property (strong) IBOutlet NSWindow *ImageEditWindow;//(custom window)
应该是:
@property (strong) IBOutlet CustomIKImageEditor *ImageEditWindow;//(custom window)