gpt4 book ai didi

cocoa - 键值观察和 NSButton 状态

转载 作者:行者123 更新时间:2023-12-03 16:12:36 28 4
gpt4 key购买 nike

我正在尝试观察复选框状态,并在复选框状态更改时在应用程序中进行适当的更改。在使用复选框管理窗口的窗口管理器中,我有以下观察者设置:

- (void)awakeFromNib
{
[myCheckBox addObserver:self
forKeyPath:@"state"
options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld)
context:NULL];
}

- (void)dealloc
{
[myCheckBox removeObserver:self forKeyPath:@"state"];
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"KeyPath: %@", keyPath);
NSLog(@"ofObject: %@", object);
NSLog(@"change: %@", change);
}

我还将 myCheckBox 连接到文件所有者(即窗口 Controller )到窗口中相应的复选框。但是,当我运行我的应用程序 observeValueForKeyPath:ofObject:change:context: 时方法从未被调用。

我做错了什么?

最佳答案

-awakeFromNib中检查myCheckbox不为零。如果它为零,那么它在 IB 中连接不正确。

编辑: NSButton.stateNSButton.cell!.state 具有相同的值,但它不是 Key-Value Observable 。为了能够观察该值,您需要使用 \.cell!.state 键路径。

关于cocoa - 键值观察和 NSButton 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3222429/

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