gpt4 book ai didi

macos - 统一从NSTextField、NSComboBox获取值?

转载 作者:行者123 更新时间:2023-12-03 17:57:39 25 4
gpt4 key购买 nike

我将以下方法设置为 NSComboBox 和两个 NSTextField 的操作:

- (IBAction)valueChanged:(id)sender
{
if (sender == comboBox) {
[myModel setFoo1:[comboBox intValue]];
} else if (sender == intTextField) {
[myModel setFoo2:[intTextField intValue]];
} else if (sender == floatTextField) {
[myModel setFoo3:[floatTextField floatValue]];
}
}

我想知道是否可以将该方法变成这样,以提高可维护性:

- (IBAction)valueChanged:(id)sender
{
[myModel setValue:[sender value] forKey:[sender identifier]];
}

不幸的是,它不是那样工作的。我收到以下错误:

[NSComboBox value]: unrecognized selector sent to instance 0x7fed42029430

如何以统一的方式(即作为对象)从控件获取值,无论是 int 还是 float?我在模型上使用的 KVC setValue:forKey: 方法应该能够推断出值对象的实际类型(即本例中的 NSNumber 类型) ,对吗?

或者这根本不可能? (我知道我可能可以使用绑定(bind)将 UI 控件绑定(bind)到模型的值字段,但这不是我想要做的。)

最佳答案

由于 NSTextFieldNSComboBox 都是 NSControl 的子类,因此您应该能够使用 -(id)objectValue 以统一的方式获取控件的值(或选定的值)。

关于macos - 统一从NSTextField、NSComboBox获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10965538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com