objective-c - NSObject 内的部分方法未执行

标签 objective-c xcode macos cocoa nsobject


我有 2 个类:AppDelegate 和 ViewAddFriendsWindowObject。
在 AppDelegate.m 中,我有以下几行代码:

#import "ViewAddFriendsWindowObject.h"

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    ViewAddFriendsWindowObject *viewAddFriends = [[ViewAddFriendsWindowObject alloc] init];
    [viewAddFriends isFirstRun:YES];
}

在 ViewAddFriendsWindowObject.h 中我有:

#import <Foundation/Foundation.h>

@interface ViewAddFriendsWindowObject : NSObject 

@property IBOutlet NSButton *cancelSkipBtn;
@property IBOutlet NSButton *doneBtn;

- (void)isFirstRun:(BOOL)firstRun;

@end

在 ViewAddFriendsWindowObject.m 中我有:

    #import "ViewAddFriendsWindowObject.h"

    @implementation ViewAddFriendsWindowObject
    @synthesize cancelSkipBtn=_cancelSkipBtn;
    @synthesize doneBtn=_doneBtn;

    - (void)isFirstRun:(BOOL)firstRun{

        NSLog(firstRun ? @"Yes" : @"No");

        if(firstRun == YES){
            NSLog(@"YES");
            [_cancelSkipBtn setTitle:@"Skip"];
            [_cancelSkipBtn setEnabled:NO];
        }else{
            NSLog(@"NO");
            [_cancelSkipBtn setTitle:@"Cancel"];
        }

    }
@end

问题就在这里。 NSLog(@"YES") 已执行,但 [_cancelSkipBtn setTitle:@"Skip"];[_cancelSkipBtn setEnabled:NO];不是。有什么想法吗?

最佳答案

当您在代码中分配和初始化对象时,您将绕过在 IB 中建立的任何连接。因此,在调用 isFirstRun 之前,您的 IBOutlet 属性不会被设置为任何内容

关于objective-c - NSObject 内的部分方法未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11418683/

相关文章:

c# - 与 C# 相比,在 Objective C 中实现协议(protocol)的语法?

ios - iOS/Xcode 中的 CouchDB?

ios - 属性检查器不显示导航项属性

ios - Swift 中自动重新加载 map

iphone - 如何在 iPhone 上使用 ScrollView ?

objective-c - cocoa /Objective-C : how much optimization should I do myself?

objective-c - 如何获取 NSView 的 "screenshot"?

java - Maven 在构建时包括旧的 SNAPSHOT

ios - 并发文件枚举

android - Android SDK 下载缓存文件夹在哪里?