NSTextField委托通知 - 如何获取文本?

Dan*_*iel 8 cocoa notifications delegates objective-c nstextfield

我一直在努力学习使用Xcode,但我对如何注册NSTextField已经改变感到困惑.基本上,我有NSTextField一个按钮.单击该按钮可以显示字段中的文本.但是,我希望能够获取该字段的文本,而无需使用文本字段"操作:发送结束编辑".也就是说,我希望能够输入文本并立即按下按钮,而无需按文本框中的输入或标签.看起来这样做的方法是为我的NSTextField响应设置一个委托

- (void)controlTextDidChange:(NSNotification *)aNotification
Run Code Online (Sandbox Code Playgroud)

但我不明白如何获取已输入的文本.我认为它与某些事情有关

[[aNotification userInfo] valueForKey:@"NSFieldEditor"];
Run Code Online (Sandbox Code Playgroud)

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

Jos*_*ell 10

你走在正确的轨道上!从通知的用户信息字典中获取的对象是字段编辑器,它只是NSTextView代表文本字段处理文本输入的对象.

一旦你拥有了这个对象,你所要做的就是询问它textStorage,它是一个NSTextStorage持有文本的*对象.反过来,那个对象有string一个NSString只有角色的普通老人.

NSTextView * fieldEditor = [[aNotification userInfo] objectForKey:@"NSFieldEditor"];
NSString * theString = [[fieldEditor textStorage] string];
Run Code Online (Sandbox Code Playgroud)

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