Snippets

From GNUstepWiki
Revision as of 21:29, 26 June 2005 by Andras (talk | contribs)
Jump to navigation Jump to search

Testing chars entered by users in NSTextField

(just for the case if someone else has the same problem)

1. Subclass NSTextField

2. In your subclass adopt the

        - (BOOL) textView: (NSTextView*) textView
        shouldChangeTextInRange: (NSRange) range
        replacementString: (NSString*) replacementString

method.

3. In this method you can access to the replacementString as char with the following line:

        char c = *([replacementString cString) + 0];  

4. Then you are free to examinate the conditions...

Limiting text input length in NSTextField

(based on Alexander Malmberg's snippet)

1. Subclass NSTextField

2. In your subclass adopt the

        - (BOOL) textView: (NSTextView*) textView
        shouldChangeTextInRange: (NSRange) range
        replacementString: (NSString*) replacementString

method.

3. Create an instance variable setting method:

         - (void) setMaxLength: (int) ml
         {
            maxLength = ml;
         } 

4. Then fill your method 2. with this:

         int newLength;
         /* The exact change isn't known. Disallow the change to be safe. */
          if (range.location == NSNotFound)
               return NO;
          newLength=[[textView textStorage] length]+[replacementString length]-range.length;
          if (newLength>maxLength)
               return YES; //allowing
          else
               return NO; // not allowing