gpt4 book ai didi

cocoa - 验证用户界面 (NSButton) 作为 NSTextField 中的用户类型

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

我知道如何使用 NSTextView 执行此操作,但 NSTextField 似乎没有提供访问支持它的 NSTextStorage 的方法,因此我无法将自己设置为委托(delegate)和进程-textStorageDidProcessEditing:

我有一个 NSTextField 作为工作表的一部分。如果该文本字段在任何时候都是空的,则应禁用“确定”按钮,直到提供一些输入为止。这基本上就是我想要做的,并且我确信有一种非常简单的方法可以做到这一点?

我尝试过:

[[[filenameInput cell] textStorage] setDelegate:self];

认为 NSTextFieldCell 将提供文本存储(主要是因为 Xcode 善意地为我自动完成了它),然后当然,通过委托(delegate)方法进行了验证:

-(void)textStorageDidProcessEditing:(NSNotification *)notification {
BOOL allowSubmit = ([[filenameInput stringValue] length] > 0)
&& (([relativePathSwitch state] == NSOnState) || ([[localPathInput stringValue] length] > 0));
[createButton setEnabled:allowSubmit];
}

这可以编译,但会导致运行时错误,因为 NSTextFieldCell 不响应 textStorage

我应该遵循什么标准模式?我想这一定是 Cocoa 开发人员的“日常”任务之一:)

The Sheet

最佳答案

这就是 NSFormatter 的用途;创建 NSFormatter 的子类并将其实例设置为 NSTextField 的格式化程序,并让它验证用户输入的文本。

关于cocoa - 验证用户界面 (NSButton) 作为 NSTextField 中的用户类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559698/

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