值未设置为IBOutlet NStextField

时间:2014-04-04 11:04:41

标签: objective-c

我想设置NSTextField

的值

//在.h班级//我有一个

IBOutlet @property (assign) IBOutlet NSTextField *tId;

//在.m Class //

  @synthesize  tId;

在我的XIB中,我已将IBOuletFilesOwner相关联。

在我的.m课程中,我试图将值设置为方法中的NSTextField

- (id)initWithWindow:(NSWindow *)window

{enter code here

[tId setStringValue:@"1"];

return self;

}

但价值没有设定。

先谢谢!!!!!

2 个答案:

答案 0 :(得分:1)

确定使用此

      -(BOOL)isPartialStringValid:(NSString*)partialString newEditingString:(NSString**)newString errorDescription:(NSString**)error
          {
            if([partialString length] == 0) {
            return YES;
          }

        NSScanner* scanner = [NSScanner scannerWithString:partialString];

        if(!([scanner scanInt:0] && [scanner isAtEnd])) {
                 NSBeep();
                return NO;
              }

       return YES;
   } 

然后将此格式化程序设置为NSTextField:

       NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
      [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
      [textField setFormatter:formatter];

答案 1 :(得分:0)

我不确定我是否正确理解了这个问题。我将解决这个问题"我尝试将stringValue设置为NSTextField通过IBOutlet访问它,但是文本字段中的值不会改变"而不是问题"如何自定义NSTextField ,因此它只接受数字值"。

可能未设置NSTextField值,因为

  • 方法initWithWindow:未被称为
  • 当你致电-[NSTextField setStringValue:]时,IBOutlets还没有联系起来。

通常,IBOutlets在初始值设定项中为nil,稍后会挂钩。我移动了行

[tId setStringValue:@"1"]; 

方法- (void)awakeFromNib,看看是否有帮助。根据文件

  

当一个对象收到一个awakeFromNib消息时,它保证设置所有的插座实例变量。

相关问题