Skip to main content

Detect url from string and want it highlight?

Take IBOutlet for TextField ,  Button and Lable:

TextField:  To take input from user
Label: To show output to user
Button : To Convert from string to Attributed string with highlighting HTTP string as a URL.

Code:
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *textField;

@property (weak, nonatomic) IBOutlet UILabel *label;

-(IBAction)click:(id)sender;

@end
@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
  
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(IBAction)click:(id)sender
{
  
    NSMutableArray *mutableWords = [[_textField.text componentsSeparatedByString: @" "] mutableCopy];
    NSLog(@"MutableWords: %@",mutableWords);
    NSMutableAttributedString *resultString;
    NSMutableAttributedString *attStr1,*attStr2;
    resultString = [[NSMutableAttributedString alloc]init];
  


    for (NSString *string in mutableWords)
    {
      
        NSRange match;
      
        attStr1 = [[NSMutableAttributedString alloc] initWithString:string];
        match = [string rangeOfString: @"http"];
        if (match.location == NSNotFound)
        {
            [resultString appendAttributedString:attStr1];
          
            NSLog(@"string:%@",resultString);
        }
        else
        {
            attStr2 = [[NSMutableAttributedString alloc] initWithString:string];

             [attStr2 addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleThick) range:NSMakeRange(0, [attStr2 length])];
            [attStr2 addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0, [attStr2 length])];

            [resultString appendAttributedString:attStr2];
          
        }

    }
  
    _label.attributedText = (NSAttributedString*)resultString;
   
}

@end

Input:

OutPut:



or

Do it in a smart way:

1. TextField: For input text (inputTextField)
2. TextView: For Output (outPutTextView)
3. Button: On click action

Button Onclick Action:

   self.textView.text = self.inputTextField.text;
   self. outPutTextView.editable = NO;

   self. outPutTextView.dataDetectorTypes = UIDataDetectorTypeAll;



Comments

Popular posts from this blog

Disable back swipe gesture in UINavigationController

Disable back swipe gesture in UINavigationController(Back swipe in Navigation is a default feature from iOS 7 onwards)  Below Code will completely remove swipe gesture to all view controllers:(Keep in it your base view controller's ViewDidLoad method) if ([ self . navigationController respondsToSelector : @selector ( interactivePopGestureRecognizer )]) [ self . navigationController . view removeGestureRecognizer : self . navigationController . interactivePopGestureRecognizer ];    Below code will remove to particular viewcontroller: self . navigationController . interactivePopGestureRecognizer . enabled = false ;     ---- --- - --- - - - - - - -- - - -  Have a Happy iOS Objective C + Swift Coding  -- - - - - --- - - -  - - -  - - - - - - -   

UIKit Framework Hierarchy

UIKIT Framework Hierarchy

Middle Level iOS Developer interview questions

Middle Level iOS Developer interview questions 1) App Thinning 2) Steps for pushing application to app store 3) How push notification works 4) How google TEZ app getting near devices for get and send money 5)Retain Concept in iOS 6)Memory management  in iOS 7)ARC means 8) Syntax for shared instance 9) optionals and unwraping 10) Design pattarns 11) Tab bar insertion between screens 12) how to load images in table view using urls for each image by smooth scrolling  13) Extenstions 14)Clousers 15)Life cycles  16)how Table view reusable works?

Like us on Facebbok