gpt4 book ai didi

cocoa - 在 Cocoa 中关闭模态对话框之前强制读取文本字段

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

在 Mac OS X Cocoa 应用程序中,我有一个应用程序模式对话框,其中包含绑定(bind)到共享用户默认 Controller 的文本字段。如果我编辑一个文本字段,然后在点击“确定”按钮之前将其移开,那么一切都会按预期进行。但是,如果我开始编辑字段,然后按 Return 键触发“确定”,则该字段的旧值仍保留在 NSUserDefaults 中。

那么,当编辑“不完整”时,如何强制更改的字段影响绑定(bind)值?

通过仔细阅读文档,我认为我可以在关闭对话框之前为每个文本字段调用 NSControl 的 validateEditing 方法,但似乎应该有一种更简单的方法。

FWIW,这是显示对话框的代码:

- (void)showDialog {
[NSApp activateIgnoringOtherApps:YES];
[NSApp beginSheet:startTimerDialog
modalForWindow:nil
modalDelegate:nil
didEndSelector:nil
contextInfo:nil];
[NSApp runModalForWindow:startTimerDialog];
[NSApp endSheet:startTimerDialog];
[startTimerDialog orderOut:self];
}

“确定”按钮(实际上标题为“开始”)是针对此方法的:

- (IBAction)startTimerDialogStartButtonWasClicked:(id)sender {
[self closeModalDialog:sender];

// Then, call methods that read values from NSUserDefaults
// ...
}

最佳答案

向用户默认 Controller 发送 commitEditing消息。

关于cocoa - 在 Cocoa 中关闭模态对话框之前强制读取文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/721092/

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