J'ai un problème et je ne trouve pas de solution de contournement pour cela. P>
J'ai une vue avec un Le d'autre part, Rien n'est sous-classé. Je n'ai besoin que de la mise en œuvre par défaut de iOS pour les fonctions de copie / pâte. P>
Ce problème n'est pas dans une seule vue. J'ai un autre J'ai fait tout ce qui est évident (importer des cadres d'assurance-emploi et de fondation, attribuer des propriétés, libérant, etc.), mais je suis encore coincé sur ceci. P>
Qu'est-ce qui pourrait interagir / interférer avec une telle fonctionnalité simple, le désactivant?
De plus, toujours sous la mise en œuvre la plus simple, quoi d'autre est nécessaire pour que cela fonctionne? (Tout cadre qui me manque, tout bien, etc.). P>
Une telle chose simple et je suis coincé avec ça.
Si quelqu'un a une idée, c'est très apprécié. p>
Le problème n'est pas causé par mon code dans une vue ou une classe. P>
J'ai ajouté une nouvelle vue (l'application est basée sur l'onglet) avec seulement un UITEXTFIELD et un UITEXTVIEW avec le texte par défaut "lorem ipsum".
Sur TextView, je peux également sélectionner du texte mais pas de menu pour copier / coller / sélectionner / sélectionner tout.
Cela se produit également dans le champ de texte (vide) où aucun menu de pâte n'apparaît (je copie du texte d'une autre application, ex. Safari ou Notes). P>
Il semble que le problème soit quelque part ailleurs affectant universellement l'application, sous toutes les vues. P>
J'ai supprimé les références de cadres et les remettez-les, mais rien ne s'est passé.
J'essaie toujours de comprendre où cela vient. p> uiwebview code> implémentation et un
uitextfield code>.
Sur les deux, lorsque je tape, je ne reçois pas le menu de copie / colle pour apparaître. P>
uiwebView code> a un texte de texte (texte uniquement) et je peux sélectionner un mot ou un paragraphe ou faire apparaître le verre de grossissement et sélectionner manuellement le texte que je veux. P>
uitextfield code> peut prendre des entrées et fonctionne comme prévu, à l'exception des fonctions de copie / pâte. P>
uiwebview code> avec le même problème ailleurs, donc je pense que c'est un problème global. P>
5 Réponses :
Assurez-vous de mettre en œuvre:
//init your menu somewhere, appropiately - (id) initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { NSMutableArray *items = [[[UIMenuController sharedMenuController] menuItems] mutableCopy]; if (!items) items = [[NSMutableArray alloc] init]; UIMenuItem *menuItem; menuItem = [[UIMenuItem alloc] initWithTitle:@"Undo" action:@selector(undo:)]; [items addObject:menuItem]; [menuItem release]; menuItem = [[UIMenuItem alloc] initWithTitle:@"Redo" action:@selector(redo:)]; [items addObject:menuItem]; [menuItem release]; [[UIMenuController sharedMenuController] setMenuItems:items]; [items release]; } return self; } //allow other items to appear and yours too :) Perhaps you are missing this? - (BOOL)canPerformAction:(SEL)action withSender:(id)sender { if ([super canPerformAction:action withSender:sender]) { return YES; } else { //write your code here if (action == @selector(undo:) && [self.undoManager canUndo]) return YES; if (action == @selector(redo:) && [self.undoManager canRedo]) return YES; } return NO; } //Do your actions - (void)undo:(id)sender{ //do your stuff here } - (void)redo:(id)sender{ //do your stuff here }
J'ai essayé CanperFormaction: (seul) mais sans résultat. Sur l'initwithframe, le Self = [Super Initwithframe: cadre] produit un avertissement UIViewController peut ne pas répondre.
Juste à des fins d'achèvement, ce code est censé être écrit dans la vue que vous essayez d'afficher le menu sur. Pas int l'UIViewController. (Depuis que vous ne sous-classant rien, vous n'avez pas besoin de cela, désolé je manque quelque chose)
OK, j'ai trouvé la solution. Cela n'a rien à voir avec le code ou les propriétés des objets. C'est plus ou moins une "mise en œuvre" du xcode4.
Lorsqu'un nouveau projet universel est créé, Xcode met un appdelegate à la racine du projet et 2 autres appdelegates dans chaque dossier, un pour l'iPad et un autre pour l'iPhone . P>
Le délégué de l'application racine ressemble à p> avec p> L'application iPhone et iPad Les délégués n'ont pas de "fenêtre" référence. P> Si l'appdelegate root est supprimé et que le code "Fenêtre" est déplacé dans l'appdelegate spécifique à chaque périphérique, le SELECT / SELECT TOUT / COPY / COLLETE (ou une autre option ) Le menu apparaît à nouveau. P> Ceci est arrivé à moi sur le premier nouveau Xcode4 que j'ai créé. Je ne me souviens pas bien si Xcode3 avait une implémentation similaire (mais je pense non plus). P> p>
Avez-vous trouvé une solution sans supprimer le délégué racinaire. J'ai déplacé mes fenêtres sur les délégués iPhone / iPad mais je ne vois toujours pas la copie et coller
n'a pas essayé de plus loin que cela. Ce faisant, j'ai eu d'autres problèmes résolus aussi (ex. Le bouton de masquage du clavier inférieur droit sur le clavier iPad a commencé à travailler). Je pense que c'est parce que le projet a été initialement créé sur XCode3 et après avoir transmis Xcode4, certains restes ont fait le travail (éventuellement). Je suppose qu'un nouveau projet créé sur XCode4 n'aura pas de problèmes. C'est un cas très étrange et cette solution est plus ou moins une solution de contournement.
J'ai eu le même problème - tout le reste fonctionnait correctement, mais tout Après quelques expériences, j'ai constaté que la cause était soit: p>
Propriété "visible au lancement" non définie sur une fenêtre de MainWindow.xib P>
ou p>
Appel manquant à Cela fonctionne bien après la fixation tout em> de ceux-ci. Essayez-le. P> uitextview code> s manquait "copier / coller / sélectionner" menu, globalement, via toutes les applications. P>
[Self.Window MakeKeyAnandVisible] Code> Intérieur
Application: DidfinishlaunchingwithOptions: Code> Méthode d'Appdelegate. P>
C'est tout, si vous avez créé le projet en Xcode 3, il a également besoin du makekeyandVisible, merci beaucoup.
Il suffit d'avoir ce problème exact. [Fenêtre MakekeyandVisibleVisible] Résolu. Grand travail de détective!
Cela n'aide pas dans mon cas
ressemble à, maintenant (2020) il y a un bogue dans iOS. Lorsque vous modifiez l'alignement de l'UITEXTFIELD au centre (NstexttalignmentCenter), vous ne pouvez pas déclencher des actions telles que Coller pour le champ vide. P>
Peut-être que c'était aussi votre problème. P>
Si vous travaillez avec Xcode 11+ et iOS 13+ Projets (et Assurez-vous d'appliquer des modifications dans cet ordre exact: P> Scedelegate Code>),
window!.makeKeyAndVisible()
window!.windowScene = windowScene
Merci. Cela corrige le problème. Vous êtes incroyable!
C'est la bonne réponse. Est-ce que quelqu'un sait pourquoi cela corrige le problème?