2010-02-23 18 views

Répondre

6

Remplacer paste: dans votre vue/contrôle (coller: fait partie du protocole informel UIResponderStandardEditActions). Au plus simple, vous feriez ceci:

- (void)paste:(id)sender 
{ 
    UIPasteboard* pasteboard = [UIPasteboard generalPasteboard]; 
    NSString* rawString = pasteboard.string; 
    NSString* formattedString = // do something fun with rawString here 
    pasteboard.string = formattedString; 
    [super paste:sender]; 
} 

Ceci suppose que vous n'avez pas besoin de faire quelque chose de terriblement fantaisie avec la chaîne (comme l'insertion de smileys animés ou quelque chose), auquel cas vous ne devriez pas appeler super mais faites vous-même l'insertion (si vous le faites sur un UITextView vous pouvez utiliser la propriété selectedRange pour effectuer l'insertion correctement).

EDIT: Pour obtenir les données d'un NSPasteBoard, vous devez utiliser –stringForType: ou l'un des several other data access methods. Vous devrez peut-être valider la chaîne/données pour vous assurer que c'est quelque chose qui peut être collé.

Vous ne devriez probablement pas appeler super mais utiliser

[self insertText:formattedString]; 

si vous faites cela sur un NSTextView. Si vous travaillez avec un autre cours, vous devez trouver ce qui est approprié dans ce contexte.

+0

Parfait, merci! – christo16

+0

Je suppose que j'ai tagué ce post avec iPhone, mais je cherche plus d'implémentation pour NSPasteBoard, en particulier la partie [super paste: sender]. – christo16

+0

@haroldthehungry Voir la modification. – Felixyz

Questions connexes