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/archive%40mail-archive.com

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

Reply via email to