• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
A question involving properties
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A question involving properties


  • Subject: A question involving properties
  • From: Michael de Haan <email@hidden>
  • Date: Sun, 11 Oct 2009 14:11:15 -0700

May I indulge the group.

In doing the Hillegass challenge of Chapter 18 ( creating a doc based app to draw ovals), detoured to get a deeper understanding to Apples Sketch-112, which in turn lead to properties and ivars, which lead to this little demo app to give me some more insight into how properties and ivars worked. The problem I have is that I cannot set a label programmatically....and am not sure if this is related to my understanding of properties, or my understanding of the workings of an NSTExtField.
( I did a search of this site, tried, "validateEditing" but still could not prevail. )



Basically, a non-doc app, with an NSTextField ( whose initial title is "label"), an AppController with an IBOutlet ( textField), and with AppController's outlet to NSTextField's control connection established in the nib.


The relevant code in AppController.h thus.



@interface AppController : NSObject {

	NSTextField * _textField;

}

@property (readwrite, retain) IBOutlet NSTextField *textField;


The accessors like this. ( I know that I could have used @synthesize) but I wanted to see what was happening in the code.



- (NSTextField*) textField
{
METHOD_LOG;// << A macro which reveals method's name, and the object (self) >>
NSLog(@"%@", _textField);
return _textField;
}


- (void) setTextField: (NSTextField*) t
{
METHOD_LOG;
if ( _textField == t)
return;
[_textField release];
[t retain];
_textField = t;
NSLog(@"The value of TextField \"_textField\" is: %@",[_textField stringValue]);

// this line a test to see if "validateEditing" works

[_textField validateEditing]; // does not effect outcome

}



and finally, in awakeFromNib, this;


METHOD_LOG; NSColor * g = [ NSColor greenColor]; NSString *s = @"FooBar"; NSTextField *f = [[NSTextField alloc]init]; [f setBackgroundColor:g]; [f setStringValue:s]; NSLog(@"The value of TextField \"f\" is: %@",[f stringValue]); [self setTextField: f]; [f release];


My output is this: (which includes a warning, which is probably relevant, but I have not been able to find much on it);




MethodName: setTextField: "self" = <AppController: 0x1002140d0>
The value of TextField "_textField" is: label
MethodName: awakeFromNib "self" = <AppController: 0x1002140d0>
The value of TextField "f" is: FooBar
MethodName: setTextField: "self" = <AppController: 0x1002140d0>
The value of TextField "_textField" is: FooBar
__CFServiceControllerBeginPBSLoadForLocalizations timed out while talking to pbs



So, from my reading of ivars, properties and outlets, it seems that Apple now recommends that the properties (not the ivars ) be exposed, which I have tried to do. Also, from the output in the console, it seems as if the outlet is set, but then reverts back to the word "label". Some insight would be appreciated. (It might very well be that this involves something that is yet to be covered, and if so, I will move on. But, just wish to know if this is something obvious that I have missed).
Thanks as always.
_______________________________________________


Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: A question involving properties
      • From: Karolis Ramanauskas <email@hidden>
  • Prev by Date: Fade out button in willTransitionToState of UITableViewCell
  • Next by Date: Re: Screensaver won't run on 10.6 even after porting to 64-bit
  • Previous by thread: Fade out button in willTransitionToState of UITableViewCell
  • Next by thread: Re: A question involving properties
  • Index(es):
    • Date
    • Thread