Difference between revisions of "Snippets"

From GNUstepWiki
Jump to navigation Jump to search
m
Line 11: Line 11:
  
 
3. In this method you can access to the ''replacementString'' as ''char'' with the following line:
 
3. In this method you can access to the ''replacementString'' as ''char'' with the following line:
         char c = *([replacementString cString) + 0];   
+
         char c = *([replacementString cString] + 0);   
  
 
4. Then you are free to examinate the conditions...
 
4. Then you are free to examinate the conditions...

Revision as of 23:52, 27 June 2005

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