//

Selectie in UITextView voorkomen

Selectie in UITextView voorkomen discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Hey Ik heb een UITextView en kan al een property zetten dat de inhoud daarvan niet kan gewijzigd worden. Mensen kunnen dus gewoon de inhoud ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Berichten van vandaag

Reageren

 

Discussietools Weergave
  #1  
Oud 17-08-09, 14:44
SkyTrix's schermafbeelding
SkyTrix SkyTrix is offline
• iOS 5.0 Beta
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2009
Berichten: 63
Standaard Selectie in UITextView voorkomen

Hey

Ik heb een UITextView en kan al een property zetten dat de inhoud daarvan niet kan gewijzigd worden. Mensen kunnen dus gewoon de inhoud lezen. Nu kan men deze inhoud wel nog kopiëren door even op te tappen en dan select all te kiezen en dan kopiëren...

Is er een manier om te voorkomen dat de inhoud van een UITextView gekopieerd wordt?

Bedankt

Laatst gewijzigd door SkyTrix; 17-08-09 om 16:07.
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 17-08-09, 15:57
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

ik vond wel een stukje code die het klembord leeggooid als je de app verlaat. Dus het nooit kan kopieren in een andere functie:

Code:
- (void)applicationWillTerminate:(UIApplication *)application {

  NSLog(@"application terminating");

  // Clear pasteboard to prevent pasting into other applications:
  UIPasteboard *pasteBoard = [UIPasteboard generalPasteboard];
  pasteBoard.items = nil;

}
  #3  
Oud 17-08-09, 15:58
SkyTrix's schermafbeelding
SkyTrix SkyTrix is offline
• iOS 5.0 Beta
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2009
Berichten: 63
Standaard

Das zeker al bruikbaar, bedankt. Zou nog beter zijn moest ik iets hebben die maakt dat je zelfs niet kan selecteren.. Ben zelf ook nog niks tegengekomen tot nu toe.
  #4  
Oud 17-08-09, 16:06
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

Ik ben even aan het zoek geweest voor je, maar voorlopig is dit het beste wat ik kon vinden.

Ik las wel iets over dat je met UIResponder iets kan doen, maar het is me nog niet duidelijk wat dat is om te voorkomen dat je kan kopieren.
  #5  
Oud 17-08-09, 16:07
SkyTrix's schermafbeelding
SkyTrix SkyTrix is offline
• iOS 5.0 Beta
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2009
Berichten: 63
Standaard

Bedankt, ik zoek nog even verder.
  #6  
Oud 17-08-09, 16:16
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

Code:
"The UIResponder class declares the method canPerformAction:withSender:. Responder classes can implement this method to show and remove commands of the editing menu based on the current context."

"The menu initially includes all commands for which the first responder has corresponding UIResponderStandardEditActions method implementations (copy:, paste:, and so on). Before the menu is displayed, however, the system sends a canPerformAction:withSender: message to the first responder, which in many cases is the custom view itself. In its implementation of this method, the responder evaluates whether the command (indicated by the selector in the first argument) is applicable in the current context. For example, if the selector is paste: and there is no data in the pasteboard of a type the view can handle, the responder should return NO to suppress the Paste command. If the first responder does not implement the canPerformAction:withSender: method, or does not handle the given command, the message travels up the responder chain.

Listing 3-5 shows an implementation of the canPerformAction:withSender: method that looks for message matching the copy:, copy:, and paste: selectors; it enables or disables the Copy, Cut, and Paste menu commands based on the current selection context and, for paste, the contents of the pasteboard."


- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    BOOL retValue = NO;
    ColorTile *theTile = [self colorTileForOrigin:currentSelection];
 
    if (action == @selector(paste:) )
        retValue = (theTile == nil) &&
             [[UIPasteboard generalPasteboard] containsPasteboardTypes:
             [NSArray arrayWithObject:ColorTileUTI]];
    else if ( action == @selector(cut:) || action == @selector(copy:) )
        retValue = (theTile != nil);
    else
        retValue = [super canPerformAction:action withSender:sender];
    return retValue;
}

From the ADC Reference Library Here (http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/EventHandling/EventHandling.html#//apple_ref/doc/uid/TP40007072-CH9-SW34)

So basically, just return NO for the selectors cut: copy: and paste: in this method in the first responder or parent in the responder chain.
Hier nog een stukje dat de echte oplossing zou zijn, maar ik weet niet of dit ook voor textviews werkt of alleen voor textfields.
  #7  
Oud 17-08-09, 16:23
SkyTrix's schermafbeelding
SkyTrix SkyTrix is offline
• iOS 5.0 Beta
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2009
Berichten: 63
Standaard

Ik zou dus een custom UITextView moeten maken met die method en voor iedere selector NO returnen?
  #8  
Oud 17-08-09, 16:26
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

Dat is wat ik er zo ongeveer van begreep, maar heb het niet zelf geprobeerd.
  #9  
Oud 17-08-09, 16:38
SkyTrix's schermafbeelding
SkyTrix SkyTrix is offline
• iOS 5.0 Beta
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2009
Berichten: 63
Standaard

Heeft niet geholpen :/ UITextView gesubclassed met die method, zelfs voor elke action NO gereturned. Blijft gewoon kopiëren..
  #10  
Oud 17-08-09, 16:49
Nikooos's schermafbeelding
Nikooos Nikooos is offline
• iOS 10.0.2
• 10.0.2
• Besturingssysteem: Mac OS X
 
Geregistreerd: Nov 2007
Locatie: Tilburg
Berichten: 3.172
Standaard

hmm.. dan heb ik helaas ook geen oplossing voor je..
  #11  
Oud 17-08-09, 16:50
SkyTrix's schermafbeelding
SkyTrix SkyTrix is offline
• iOS 5.0 Beta
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2009
Berichten: 63
Standaard

Jammer, maar super bedankt voor al je moeite!
  #12  
Oud 17-08-09, 17:23
Whacko Whacko is offline
• iOS 7.1.2
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jan 2009
Berichten: 484
Standaard

hij blijft kopieren omdat de copy events door de hele responder chain gaan. subviews van UITextView krijgen die events nog binnen. indien mogelijk zou je die ook moeten subclassen. "Note that if your class returns NO for a command, another responder further up the responder chain may still return YES, enabling the command."
__________________
Software Engineer
iPhone Developer
  #13  
Oud 17-08-09, 17:51
SkyTrix's schermafbeelding
SkyTrix SkyTrix is offline
• iOS 5.0 Beta
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2009
Berichten: 63
Standaard

Citaat:
Oorspronkelijk geplaatst door Whacko Bekijk bericht
hij blijft kopieren omdat de copy events door de hele responder chain gaan. subviews van UITextView krijgen die events nog binnen. indien mogelijk zou je die ook moeten subclassen. "Note that if your class returns NO for a command, another responder further up the responder chain may still return YES, enabling the command."
Mijn UITextView heeft heeft geen subviews.. Ik begrijpt het precies niet zo goed. Hoe kan een ander object nu YES returnen als er maar 1 instance is van mijn custom UITextView?
  #14  
Oud 17-08-09, 18:30
Whacko Whacko is offline
• iOS 7.1.2
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jan 2009
Berichten: 484
Standaard

een standaard UITextview heeft volgens mij al subviews: Timberline: /Users/ericasadun/Headers/merged/UIKit/UITextView.h Source File

als dan een van die objecten zegt dat zijn text gekopieerd kan worden, dan doet ie dat gewoon.
  #15  
Oud 17-08-09, 18:33
SkyTrix's schermafbeelding
SkyTrix SkyTrix is offline
• iOS 5.0 Beta
• 4.3.5
• Besturingssysteem: Mac OS X
 
Geregistreerd: Apr 2009
Berichten: 63
Standaard

Hoe kan ik daar dan rond..? :s
  #16  
Oud 17-08-09, 19:29
Whacko Whacko is offline
• iOS 7.1.2
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jan 2009
Berichten: 484
Standaard

ik weet het niet zeker, maar ik denk dat dit een mogelijke oplossing is:

iPhone Custom Class / Object in Responder Chain - Stack Overflow

een category maken op de views die canPerformAction implementeren, en dan daar uitschakelen ofzo.
Reageren



Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
Adressen selectie synchroniseren znerik iTunes 3 05-01-11 12:13
Muziek: Selectie mp3's in itunes bepaalt, niet instellingen iphone... FScheltens Muziek, foto & video 0 10-03-10 00:11
Netwerk selectie Iphone 3G Roxn iPhone algemeen 33 17-08-09 18:35
UITableViewCell subview kleur veranderen bij selectie SkyTrix Ontwikkelen voor iOS 3 02-08-09 14:32

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 07:40.