0

我有一个带有 NSNumberFormatter 的 NSTextField。我将格式化程序的最小值设置为 0(因为我无法将其设置为 0.01),并将样式设置为十进制。NSTextField 使用浮点 ivar 对其值进行绑定,并且操作设置为“仅在输入时发送”。这工作得很好。

我想做的是,如果用户尝试删除该值并单击关闭或按 Enter,我想在编辑之前恢复原始值。

我试过了:

-(void) setNilValueForKey:(NSString*) key {
    if ([key compare:@"valX"] == NSOrderedSame) {
        self.valX = valX;
    }
}

但这并没有设置 NSTextField。我很茫然,任何帮助表示赞赏。

谢谢GW

4

1 回答 1

0

对于擦除的情况,将以下委托方法实现为

- (void)controlTextDidChange:(NSNotification *)notification
{
    NSTextField* textfield = [notification object];

        if([textfield intValue] == 0)
        {
            [textfield setValue:valX];
        }
}

对于按 Enter 并单击 off 的情况,执行

- (void)controlTextDidEndEditing:(NSNotification *)obj
{


    NSTextField* textfield = [notification object];
       [textfield setValue:valX];


}
于 2013-10-14T09:30:36.763 回答