0

首先,我必须在没有 IB 和没有像 KVO 这样的高级 Objective-C 技术的情况下做到这一点。

我的问题来自一个简单的事实,即我找不到获取文本字段的全新字符串值的方法。

我尝试使用委托功能:

- (BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString

但这并不仅仅给我替换字符串而不是我需要验证的完整字符串。我可以稍后使用文本

我发现

- (void)textDidChange:(NSNotification *)aNotification 
- (void)controlTextDidChange:(NSNotification *)aNotification

但是当我接到这个电话时已经很晚了,最后一个文本字段的内容已经消失了。那么处理这个问题的最佳方法是什么?

是的,我确实读过将 NSTextField 绑定到 NSNumber,但它让我不知道如何解决我的问题。

我只需要一个简单的“- (BOOL)acceptNewValue(NSString string)”测试函数。为什么 Cocoa 的一切都变得如此复杂,它开始感觉像 MFC。

4

1 回答 1

3

我尝试使用委托功能:

你的意思是实现方法。使用它意味着调用它,这是 NSTextView 的工作,它是一个 Objective-C 方法,而不是一个 C 函数。

- (BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString

但这并不仅仅给我替换字符串而不是我需要验证的完整字符串。

除非它这样做:您可以向文本视图询问前一个完整的字符串自己将更改应用于该字符串的可变副本,然后验证结果字符串。NO如果更改将导致无效输入,则返回。

于 2010-08-31T01:29:53.897 回答