gpt4 book ai didi

objective-c - NSTextField 委托(delegate)通知——如何获取文本?

转载 作者:太空狗 更新时间:2023-10-30 03:31:45 25 4
gpt4 key购买 nike

我一直在尝试学习使用 Xcode,但我对如何注册 NSTextField 已更改感到困惑。本质上,我有一个 NSTextField 和一个按钮。单击该按钮会对字段中的文本进行处理。但是,我希望能够在不需要使用文本字段“Action:send on end editing”的情况下获取字段的文本。也就是说,我希望能够输入文本并立即按下按钮,而无需按回车键或跳出文本框。似乎这样做的方法是为响应

NSTextField 设置一个委托(delegate)
- (void)controlTextDidChange:(NSNotification *)aNotification

但是我不明白如何获取已经输入的文本。我认为这与

[[aNotification userInfo] valueForKey:@"NSFieldEditor"];

但我真的不知道从那里去哪里。

最佳答案

您走在正确的轨道上!您从通知的用户信息字典中获取的对象是 Field Editor ,它只是一个委托(delegate)文本字段处理文本输入的 NSTextView

一旦你有了那个对象,你所要做的就是向它询问它的textStorage,这是一个NSTextStorage。 * 持有文本的对象。反过来,该对象有它的 string,它是一个普通的旧 NSString,只包含字符。

NSTextView * fieldEditor = [[aNotification userInfo] objectForKey:@"NSFieldEditor"];
NSString * theString = [[fieldEditor textStorage] string];

* NSAttributedString 的子类,它是一个包含字符串和相关“属性”(如颜色、字体和下划线)的对象。

关于objective-c - NSTextField 委托(delegate)通知——如何获取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5969285/

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