J'essaie de coller le texte directement dans l'emplacement actuel du curseur. J'ai essayé de faire ce qu'il dit à: - http://dev.ragfield.com/2009/09/insert-text-at-current-cursor-location.htmliphone sdk - Problème de collage dans l'emplacement de texte actuel
L'affaire principale est que je ne peux pas simplement aller textbox1.text (etc) parce que le champ de texte est au milieu d'une cellule personnalisée. Je veux juste ajouter du texte à l'endroit où se trouve le curseur (lorsque j'appuie sur une touche personnalisée d'un clavier).
-Je veux juste coller un nombre décimal dans la zone de texte ...
L'erreur que je reçois est:
2010-05-15 22: 37: 20,797 PageControl [37962: 207] * - [MyDetailController paste:]: sélecteur non reconnu envoyé à l'instance 0x1973d10 2010-05-15 22: 37: 20.797 PageControl [37962: 207] * Fin de l'application en raison d'une exception non interceptée 'NSInvalidArgumentException', raison: '*** - [MyDetailController paste:]: sélecteur non reconnu envoyé à l'instance 0x1973d10 '
Note: J'ai accès à l'étiquette textfield (si cela aide?)
Je suis un peu dépassé le stade débutant en c objectif, mais pas encore grand. Mon code est actuellement ci-dessous, et à https://gist.github.com/d634329e5ddf52945989
Merci à tous.
MyDetailController.h
@interface MyDetailController : UITableViewController <UITextFieldDelegate,UINavigationControllerDelegate>
{
//...(lots in here)
}
@end
@interface UIResponder(UIResponderInsertTextAdditions)
- (void) insertText: (NSString*) text;
@end
MyDetailController.m
@implementation MyDetailController
//.... (lots in here)
- (void)addDecimal:(NSNotification *)notification {
// Apend the Decimal to the TextField.
//savedAmount.text = [savedAmount.text stringByAppendingString:@"."];
NSLog(@"Decimal Pressed");
NSLog(@"tagClicked: %d",tagClicked);
switch (tagClicked) {
case 7:
//savedAmount.text = [savedAmount.text stringByAppendingString:@"."];
break;
case 8:
//goalAmount.text = [goalAmount.text stringByAppendingString:@"."];
break;
case 9:
//incrementAmount.text = [incrementAmount.text stringByAppendingString:@"."];
break;
case 10:
//incrementAmount.text = [incrementAmount.text stringByAppendingString:@"."];
break;
}
[self insertText:@"."];
}
-(void)textFieldDidBeginEditing:(UITextField *)textfield{
//UITextField *theCell = (UITextField *)sender;
tagClicked = textfield.tag;
NSLog(@"textfield changed. tagClicked: %d",tagClicked);
}
@end
@implementation UIResponder(UIResponderInsertTextAdditions)
- (void) insertText: (NSString*) text
{
// Get a refererence to the system pasteboard because that's
// the only one @selector(paste:) will use.
UIPasteboard* generalPasteboard = [UIPasteboard generalPasteboard];
// Save a copy of the system pasteboard's items
// so we can restore them later.
NSArray* items = [generalPasteboard.items copy];
// Set the contents of the system pasteboard
// to the text we wish to insert.
generalPasteboard.string = text;
// Tell this responder to paste the contents of the
// system pasteboard at the current cursor location.
[self paste: self];
// Restore the system pasteboard to its original items.
generalPasteboard.items = items;
// Free the items array we copied earlier.
[items release];
}
@end
J'ai juste essayé d'ajouter une méthode paste: vide, et cela passe l'erreur ci-dessus. Ce qui doit être dans la méthode paste: pour que inserText insère réellement du texte? Salutations – oberbaum
Vous ne voulez pas appeler insertText: ou coller: sur votre objet UIViewController, vous voulez appeler [textField insertText: text] – ragfield
Eh bien, je l'ai résolu maintenant, ce qui précède m'a au moins sur la droite direction. Merci. – oberbaum