2010-12-15 29 views
1

我对可可有些生疏,所以请在术语等方面与我联系。如何在字符输入到NSTextField时获取通知?

我想写一些本质上是反向拼写检查的东西。如同一样,如果一个单词拼写正确,那么对于随机单词,它会将其更改为拼写错误的版本。无害的恶作剧在某人身上播放。

那么,我的主要问题是,我不知道如何做到这一点(主要问题,我知道)。我喜欢textedit执行即时拼写检查的方式,但我想将这种行为纳入NSTextField的通用行为中。当字符输入到NSTextField时,是否有某种方法可以通知应用程序?

编辑:我的目标是使这个系统范围内,因为在系统中的任何NSTextField会得到这种行为作为继承的问题。我开放了一些严重黑客在这里。

回答

1

要回答你的问题:重视代表到的NSTextField控制,并实现

- (void)controlTextDidChange:(NSNotification *)aNotification 

注意的NSTextField使用共享字段编辑器编辑文本,这是一个NSText对象。你可以操纵它来做你想做的事。

+0

我忘了在我的文章中提到这一点,但我想让这成为系统范围的行为,因为每个NSTextField都会出现这种行为。 – Alex 2010-12-15 17:02:44

+0

我当然希望这是不可能的! – 2010-12-15 17:05:11

+0

我在编辑中提到,如果需要的话,我可能会遇到一些严重的黑客行为。如果必须的话,我可以一直到内核级别(尽管这会从恶作剧到rootkit) – Alex 2010-12-15 19:40:21

0

我喜欢这个主意!这应该相当容易。首先,您必须决定是否要使用NSTextFieldNSTextView。 TextEdit.app使用NSTextView,它适用于更广泛的文字处理类型任务。 NSTextField更适用于较小,格式最简单的文本块。有很多方法可以解决这个问题,但我会给你一对夫妇。

对于NSTextField,请将您的控制器对象设置为文本字段的委托并覆盖controlTextDidChange:方法。无论何时用户在文本字段中输入一个字符,您都会收到此消息。然后您可以修改该字段的字符串以引入拼写错误的单词。

对于NSTextView,您可以激活拼写检查并使用文本视图的委托方法textView:didCheckTextInRange:types:options:results:orthography:wordCount:。您应该可以修改拼写检查的结果。

相关问题