防止 NSTextField 留空

发布于 2024-12-01 06:10:12 字数 162 浏览 1 评论 0原文

我有一个 NSTextField ,里面有一个 NSNumberFormatter 。我见过一些文本字段,如果你将它们留空,它只会将之前的数字放回其中。我很好奇 Interface Builder 中是否有提供此行为的设置。我似乎找不到它,但我对 IB 相当陌生,可能没有找到正确的位置。

谢谢

I have a NSTextField with an NSNumberFormatter inside of it. I've seen textfields that if you leave them blank it just puts whatever number was in it previously back into it. I'm curious if there's a setting in Interface Builder that provides this behavior. I can't seem to find it, but I'm fairly new to IB and might not be looking in the right spot.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

离去的眼神 2024-12-08 06:10:12

据我所知,IB 中除了默认值之外没有任何行为(这在这里没有帮助),但是您可以使用 NSTextFieldDelegate (NSControlTextEditingDelegate 的扩展)来监视编辑何时完成,使用 control:textShouldEndEditing: 如果将值留空,您可以将值放回框中。您可以在此处了解 NSTextFieldDelegate

There's no behaviour that I know of in IB other than the default value (which won't help here), but you could use NSTextFieldDelegate (extension of NSControlTextEditingDelegate) to monitor when editing finishes, using control:textShouldEndEditing: you can throw a value back into the box if it's left blank. You can read about NSTextFieldDelegate here.

愿与i 2024-12-08 06:10:12

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

1) 子类 NSNumberFormatter

2) 实现(如果为空,将输入 0)

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

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

    return [super stringForObjectValue:obj];

}

3) 在 IB 中设置类

If you want to leave just back some default value for case the user deleted the input

1) Subclass NSNumberFormatter

2) Implement (will put a 0, if empty)

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

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

    return [super stringForObjectValue:obj];

}

3) set the class in IB

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文