2013-04-07 4 views
3

NSHndoManager에 UITextView 컨트롤을 구현하고 있습니다. 마지막 텍스트 변경을 취소하고 싶다면NSManager로 클립 보드 텍스트 실행 취소

// NSUndoManager *myUndoManager; Declared in the header 

if (myUndoManager.canUndo) { 
    [myUndoManager undo]; 
} 

매우 간단합니다. 그러나 클립 보드 텍스트를 TextView 컨트롤에 다음과 같이 삽입하면 myUndoManager.canUndo가 비어 있습니다.

textview1.text = [[UIPasteboard generalPasteboard] string]; 

클립 보드 텍스트를 사용할 때 텍스트 변경 사항을 실행 취소 할 수 있습니까?

도움 주셔서 감사합니다.

답변

0

난 그냥 수동으로 스택에 텍스트를 추가해야 할 것 같아요.

- (IBAction)goClicked1:(id)sender { 
    NSString *pastetext = [[UIPasteboard generalPasteboard] string]; 
    [self setText:pastetext]; 
} 

- (void)setText:(NSString *)str { 
    NSUndoManager *undoManager = [self undoManager]; 
    NSString *oldtext = textview1.text; 
    [[undoManager prepareWithInvocationTarget:self] setText:oldtext]; 
    textview1.text = str; 
}