防止NSTextField保留为空

时间:2011-08-24 18:11:23

标签: objective-c cocoa interface-builder nstextfield nsnumberformatter

我有一个带有NSNumberFormatter的NSTextField。我已经看过文本字段,如果你把它们留空,只需将之前的数字放入其中。我很好奇Interface Interface中是否有一个提供此行为的设置。我似乎无法找到它,但我对IB很新,可能不会找到合适的位置。

由于

2 个答案:

答案 0 :(得分:5)

除了默认值之外,我没有在IB中知道的行为(这在这里没有帮助),但您可以使用 NSTextFieldDelegate (NSControlTextEditingDelegate的扩展名)来监控编辑完成时的时间,使用 control:textShouldEndEditing:如果值保留为空,则可以将值返回到框中。你可以read about NSTextFieldDelegate here

答案 1 :(得分:1)

如果您想要保留一些默认值,以便用户删除输入

1)子类NSNumberFormatter

2)实现(如果为空则将设置为0)

- (NSString *)stringForObjectValue:(id)obj {

    if (obj == nil) {
        return @"0";
    }

    return [super stringForObjectValue:obj];

}

3)在IB中设置班级