2011-08-07 60 views
3

有沒有發佈一些通知或以其他方式告訴NSTextView或任何可編輯元素何時自動更新了某些內容?自動更正通知

+0

爲什麼?一些背景可能會有幫助 – tjameson

回答

3

其實我已發現瞭如何使用NSTextView拼寫檢查委託方法來做到這一點:

- (NSArray *)textView:(NSTextView *)view didCheckTextInRange:(NSRange)range types:(NSTextCheckingTypes)checkingTypes options:(NSDictionary *)options results:(NSArray *)results orthography:(NSOrthography *)orthography wordCount:(NSInteger)wordCount { 
    for (NSTextCheckingResult *result in results) { 
     if (result.resultType == NSTextCheckingTypeCorrection) { 
      NSLog(@"autocomplete has occured! %@", result); 
     } 
    } 
    return results; 
} 
+0

不錯的答案,非常方便。 –

2
+0

這聽起來像我所需要的,但是當我訂閱它時,它在自動更正發生時不會被調用。 – Joshua

+1

也許是一個錯誤?也許發佈一些相關的代碼供他人審查。 –

+0

我一直在訂閱這樣的通知:'[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(autocompleteOccurred :) name:NSSpellCheckerDidChangeAutomaticSpellingCorrectionNotification object:nil'''autocompleteOccured'方法只包含一個NSLog。然後在我的應用程序中使用NSTextView我導致自動更正,但我從來沒有看到消息記錄。 – Joshua