我的Cocoa上有点生疏,所以请耐心等术语。
我想写一些本质上是反向拼写检查的东西。如同,如果一个单词拼写正确,那么对于随机单词,它会将其更改为拼写错误的版本。无情的恶作剧在玩某人。
那么,我的主要障碍是我不知道该怎么做(主要问题,我知道)。我喜欢textedit执行动态拼写检查的方式,但我想将这种行为合并到NSTextField的通用行为中。是否有某种方法可以在将字符输入NSTextField时通知应用程序?
编辑:我的目标是在系统范围内进行此操作,因为系统中的任何NSTextField都会将此行为视为继承问题。我对这里的一些严重的黑客持开放态度。答案 0 :(得分:1)
要回答您的问题:将委托附加到NSTextField控件,并实现
- (void)controlTextDidChange:(NSNotification *)aNotification
请注意,NSTextField使用共享字段编辑器编辑文本,这是一个NSText对象。你或许可以操纵它来做你想做的事。
答案 1 :(得分:0)
我喜欢这个主意!这应该很容易做到。首先,您必须决定是否要使用NSTextField
或NSTextView
。 TextEdit.app使用NSTextView
,适用于更广泛的文字处理类型任务。 NSTextField
更适用于较小的,格式最小的文本块。有很多方法可以解决这个问题,但我会给你一些。
对于NSTextField
,将控制器对象设置为文本字段的委托,并覆盖controlTextDidChange:
方法。只要用户在文本字段中键入字符,您就会收到此消息。然后,您可以修改字段的字符串以引入拼写错误的单词。
对于NSTextView
,您可以激活拼写检查并使用文本视图的委托方法textView:didCheckTextInRange:types:options:results:orthography:wordCount:
。您应该能够修改拼写检查的结果。