NSButton 值为 1
Posted
技术标签:
【中文标题】NSButton 值为 1【英文标题】:NSButton values are 1 【发布时间】:2017-11-25 22:13:47 【问题描述】:我想使用 NSButton 的 integerValue 在方法中传递信息,但遇到了一个奇怪的错误:无论我设置一个值 - 无论是 integerValue、stringValue 还是 floatValue,当我读出它时,它都是 1。
NSButton 继承自 NSControl 并且 应该 具有通常的值集...但所有这些值(包括字符串)都解析为 1。
我在 NSControl.h 或 NSButton.h 中看不到任何东西表明 xxValue 不是普通属性。
我正在使用 Xcode 9/Swift 4/macOS 10.12.6 - 这是一个已知问题吗?这在任何地方都有记录吗?我使用 .tag 作为解决方法,但不希望这样做。
【问题讨论】:
不要使用 control 的整数值来检索信息,这是非常糟糕的做法。 “无论我设置一个值是什么——无论是 integerValue、stringValue 还是 floatValue,当我读出它时,它都是 1。”没有人看到这一点,因为你没有展示任何一行工作。 @the4kman 我不打算这样做,但我需要一种快速的方法来跟踪我正在测试的东西中的发件人,并且动态更改按钮的标签似乎更更多 i> 从概念上讲是可疑的(但在帮助我追踪我的错误方面起到了作用。有时我只想要一个诊断有效负载)。一旦我偶然发现了一个奇怪的东西,我就会试着弄清楚它的来源以及我是如何发现的。 【参考方案1】:这不是错误。
来自documentation of NSButton
:
对于大多数类型的按钮,按钮的值与其状态相匹配——值为 1 表示打开,0 表示关闭,或 -1 表示混合。对于压力感应按钮,按钮的值表示压力级别。
【讨论】:
谢谢 - 我知道我错过了一些东西,我就是想不通。我显然没有足够仔细地阅读介绍性文字。谜题解开了。以上是关于NSButton 值为 1的主要内容,如果未能解决你的问题,请参考以下文章
在 C# MonoMac (NSButton, NSLabel) 中动态创建控件/对象