Difference between revisions of "Snippets"

From GNUstepWiki
Jump to navigation Jump to search
m (Small language cleanups)
(Clean-up)
Line 1: Line 1:
== Testing ''chars'' entered by users in ''NSTextField'' ==
+
== Objective-C and OOP Concepts ==
When the contents of a NSTextField are changed by the user, it is possible to check whether or not to accept the changes.
 
  
1. Subclass NSTextField
 
  
2. In your subclass implement the
 
        - (BOOL) textView: (NSTextView*) textView
 
        shouldChangeTextInRange: (NSRange) range
 
        replacementString: (NSString*) replacementString
 
method.
 
  
3. Within this method you can access to the ''replacementString'' as an NSString, or as ''char'' with the following line:
+
== Foundation Kit ==
        char c = *([replacementString cString] + 0); 
+
* [[NSArray]]
  
4. You should return YES or NO depending on whether you accept the replacement string.
 
  
== Limiting text input length in ''NSTextField'' ==
+
== Application Kit ==
(based on Alexander Malmberg's snippet)
+
* [[NSDocument]]
 
+
* [[NSTableView]]
1. Subclass NSTextField
+
* [[NSTextField]]
 
+
* [[NSView]]
2. In your subclass implement the
 
        - (BOOL) textView: (NSTextView*) textView
 
        shouldChangeTextInRange: (NSRange) range
 
        replacementString: (NSString*) replacementString
 
method.
 
 
 
3. Also create an instance variable setting method:
 
          - (void) setMaxLength: (int) ml
 
          {
 
            maxLength = ml;
 
          }
 
 
 
4. Then fill your implementation of textView:shouldChangeTextInRange:replacementString: with the following code:
 
          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
 

Revision as of 13:47, 5 September 2005

Objective-C and OOP Concepts

Foundation Kit


Application Kit