Objective c 目标C,可可,参考参数-ITK#可可
我是Cocoa和XCode的新手,希望能得到您的帮助。我制作了XIB窗口的控制器,并启动了我的窗口,我有一个参数,我想我的控制器需要有,y设置参数,但当我点击一个按钮,我需要恢复参数时,值为nill或空 例如 我有Objective c 目标C,可可,参考参数-ITK#可可,objective-c,xcode,cocoa,itk,Objective C,Xcode,Cocoa,Itk,我是Cocoa和XCode的新手,希望能得到您的帮助。我制作了XIB窗口的控制器,并启动了我的窗口,我有一个参数,我想我的控制器需要有,y设置参数,但当我点击一个按钮,我需要恢复参数时,值为nill或空 例如 我有 #import <Cocoa/Cocoa.h> #import "ITKExample1Filter.h" #import "Helper.h" @interface VentanaGraficaController1 : NSWindowController {
#import <Cocoa/Cocoa.h>
#import "ITKExample1Filter.h"
#import "Helper.h"
@interface VentanaGraficaController1 : NSWindowController {
ViewerController* _viewerController;
IBOutlet NSComboBox *combo;
IBOutlet NSTextField *windowLevelTextField;
IBOutlet NSTextField *windowWidhTextField;
NSString *cad_;
}
@property NSString *cad;
@property ViewerController* viewerController;
//Metodos
- (IBAction) converToRGB: (id)sender;
- (IBAction) initAux: (id)sender;
- (void) initController : (ViewerController*) vc: (int) n;
@end
我使用控制器的方式如下:
VentanaGraficaController1 *controller = [[VentanaGraficaController1 alloc] initWithWindowNibName:@"VentanaGraficaController1"];
[controller setViewerController:viewerController];
[controller setViewerController:(viewerController)];
[controller setCad:@"works??"];
controller.viewerController = viewerController;
controller.cad = @"works??";
[controller showWindow:nil];
当我显示NSSAlert时,它总是以空白或空字符串的形式显示。我尝试了很多方法,但我不知道为什么会丢失值。看起来你没有告诉你的控制器保留你的属性 你有
@property NSString *cad;
@property ViewerController* viewerController;
默认为赋值,这意味着它们可能会在你身上消失
尝试将这些行更改为:
@property (strong) NSString *cad;
@property (strong) ViewerController* viewerController;
我试图通过引用在我的XIB控制器中设置NSString的值
@interface VentanaGraficaController1 : NSWindowController {
ViewerController* _viewerController;
IBOutlet NSComboBox *combo;
IBOutlet NSTextField *windowLevelTextField;
IBOutlet NSTextField *windowWidhTextField;
NSString *cad_;
}
@property(strong) NSString *cad;
@end
And In my .m file I have the Action of the Button With this Code....
@implementation VentanaGraficaController1
//Parametros que sintetizaremos para manejar los valores por referencia
@synthesize viewerController = _viewerController;
@synthesize cad = cad_;
- (id)initWithWindow:(NSWindow *)window
{
self = [super initWithWindow:window];
if (self) {
// Initialization code here.
}
return self;
}
- (IBAction) converToRGB: (id)sender {
NSAlert *a = [NSAlert alertWithMessageText:
cad_
defaultButton:@"OK" alternateButton:@"Cancel"
otherButton:nil informativeTextWithFormat:
@"Just a Test"];
[a runModal];
}
在我的代码中
VentanaGraficaController1 *controller = [[VentanaGraficaController1 alloc] initWithWindowNibName:@"VentanaGraficaController1"];
controller.cad = @"My striiiiing";
[controller showWindow:nil];
return 0;
只是,我的意思是,我有另一个对象,我真的需要发送,但如果我不能发送一个NSString,这是出于同样的原因,我有几乎2天的时间与此
我也使用了setter,但我得到了相同的结果,当我打印NSString时,NSSAlert将字符串打印为空或零Thank's,我将在晚上进行测试,我会再次告诉你,我不知道我做错了什么,我给我的属性添加了strong,但它仍在丢失值,在Resume中,我所做的是……解决了,我是一个傻瓜。。。我正在向我的Xib添加另一个控制器,该控制器具有与我的所有者文件相同的类型,我是一个noob:P,只需使用所有者控制器编辑它,就可以正常运行
VentanaGraficaController1 *controller = [[VentanaGraficaController1 alloc] initWithWindowNibName:@"VentanaGraficaController1"];
controller.cad = @"My striiiiing";
[controller showWindow:nil];
return 0;