我有一个带有NSNumberFormatter的NSTextField。我将格式化程序设置为min为0(因为我无法将其设置为0.01),并将样式设置为十进制。 NSTextField使用float ivar绑定其值,并将操作设置为“Send On Enter Only”。这很好用。
我想要做的是,如果用户试图删除该值并点击关闭或按Enter键,我想在编辑之前恢复原始值。
我试过了:
-(void) setNilValueForKey:(NSString*) key {
if ([key compare:@"valX"] == NSOrderedSame) {
self.valX = valX;
}
}
但这不会设置NSTextField。我很茫然,感谢任何帮助。
由于 GW
答案 0 :(得分:0)
对于擦除的情况,请将以下委托方法实现为
- (void)controlTextDidChange:(NSNotification *)notification
{
NSTextField* textfield = [notification object];
if([textfield intValue] == 0)
{
[textfield setValue:valX];
}
}
如果按Enter键并单击关闭,请执行
- (void)controlTextDidEndEditing:(NSNotification *)obj
{
NSTextField* textfield = [notification object];
[textfield setValue:valX];
}