gpt4 book ai didi

macos - 识别 controlTextDidEndEditing 的发送者

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

我有一个 View ,其中三个 NSTextFields 连接到一个 View Controller ,该 Controller 充当这三个 View 的委托(delegate)。

我已成功实现 controlTextDidEndEditing 来拦截用户输入的文本并更改模型中的属性。不过,该方法在委托(delegate)中是唯一的,并且所有三个文本字段都会触发它。问题是,我如何确定是哪一个发出了通知?我可以从通知的“NSFieldEditor”键获取 NSTextView,但这并不能真正告诉我它是哪一个。一开始我想使用 NSTextField 占位符,但该方法返回给我一个 NSTextView,它似乎没有占位符属性。

有什么想法吗?

最佳答案

您应该能够通过[notification object]获取对NSTextField的引用。如果您的所有三个 NSTextField 都可以作为委托(delegate),那么很容易检查哪一个触发了事件。像这样:

- (void)controlTextDidEndEditing:(NSNotification *)aNotification {
NSTextField* textField = (NSTextField *)[aNotification object];
if (textField == textField1) {
// textField1 triggered the event
} else if (textField == textField2) {
...
} else if (textField == textField3) {
...
}
}

关于macos - 识别 controlTextDidEndEditing 的发送者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461193/

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