On Feb 13, 2015, at 8:42 AM, David Duncan <david.dun...@apple.com> wrote:

> Since you elided your header file, this begs a question – is this iOS or OS X?

This is OSX.

I was following Apple’s example, which control-drags from a button to the .m 
file.  The .h file isn’t used. I supplied the shortest possible file to avoid 
confusion.

> 
> If I’m not mistaken, subclasses of NSView do not get -initWithCoder:, but 
> rather -initWithFrame:, which begs the question of have you confirmed that 
> your -initWithCoder: method is being called?

Yes. With a breakpoint.

InitWithCoder is called because Runtime Behavior, Instantiation,  Prefer Coder 
is checked in xib’s inspector.
There was quite a discussion about why it works this way 12/23/14 - 12/30/14, 
in response to my request for help, “initWithFrame fails”  Roland King nailed 
it in his email 12/26/2014.


Nick

> 
>> On Feb 6, 2015, at 6:22 PM, N!K <pu56ucl...@alumni.purdue.edu> wrote:
>> 
>> 
>> I would like to connect a button to MyView class, but Xcode 6.1.1 only 
>> allows control-dragging a button to AppDelegate to create an IBAction. I 
>> have not encountered this previously. Looking for a workaround, I found this 
>> recommendation in a couple of Stack Overflow and other web pages as well as 
>> a YouTube video. It enables the button to work, but unfortunately it zeros 
>> all the integers in MyView.
>> 
>> The recommendation is:
>> 1. Drag an empty Object from the IB library to the column of blue icons.
>> 2. Set its class to MyView.
>> 3. Control-drag from the button to MyView.m
>> 4. Fill in the name (“act”) in the popup.
>> This puts the IBAction template into MyView, ready to fill in.
>> 
>> #import "MyView.h"
>> 
>> @implementation MyView
>> 
>> - (id)initWithCoder:(NSCoder *)aDecoder
>> {
>>   self = [super initWithCoder:aDecoder];
>>   if (self) {
>>       iii=1000;
>>       k=99;
>>   }
>>   return self;
>> }
>> 
>> - (IBAction)act:(id)sender {
>>   iii=iii+1;
>>   NSLog(@"  iba i= %i",iii);
>> }
>> 
>> 
>> In MyView.m, iii=1000 is initialized in initWithCoder. At the breakpoint 
>> after IBAction, iii is seen in both places to have the value 1, not 1001,  
>> by hovering. It was zeroed and then incremented after clicking on Button in 
>> the View. Similarly, k is initialized to 99 and then zeroed. Both are ivars 
>> in MyView.h.
>> 
>> Clearly, zeroing all the integers is not acceptable. Can this approach be 
>> saved? Having the IBAction in MyView is desirable for directly relating its 
>> functions to the rest of MyView, rather than indirectly from AppDelegate. On 
>> the other hand, Xcode may have very good reasons – unknown to me – for 
>> restricting IBAction to AppDelegate. Maybe timing?
>> 
>> Thanks in advance,
>> 
>> Nick
>> _______________________________________________
>> 
>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>> 
>> 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:
>> https://lists.apple.com/mailman/options/cocoa-dev/david.duncan%40apple.com
>> 
>> This email sent to david.dun...@apple.com
> 
> --
> David Duncan
> 

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to