gpt4 book ai didi

objective-c - 无法更改 NSTextField 文本

转载 作者:行者123 更新时间:2023-12-03 18:00:49 25 4
gpt4 key购买 nike

我有一个 NSTextField 问题 - 我无法更改其中的文本(可以在 (void)awakeFromNib 中更改一次,但之后就不行了)。

我将在这里给你我的标题和实现:

#import <Cocoa/Cocoa.h>
#import "Employee.h"


@interface EmployeeView : NSViewController {
NSTextField *mikk;
Employee *employee;
}

@property (retain) IBOutlet NSTextField *mikk;
@property (retain) Employee *employee;

- (void)setSelectedEmployee:(Employee*)employeeIn;

@end


#import "EmployeeView.h"


@implementation EmployeeView

@synthesize mikk, employee;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Initialization code here.
}

return self;
}

- (void)setSelectedEmployee:(Employee*)employeeIn
{
employee = employeeIn;
NSLog(@"given employee = %@", employee.fullName);
[mikk setStringValue: @"hi"];
}

-(void)awakeFromNib
{
NSLog(@"i awoke");
[mikk setStringValue:@"hello"];
}

- (void)dealloc
{
[employee release];
[mikk release];
[super dealloc];
}

@end

它可能看起来很糟糕,但要点是我调用了该方法

- (void)setSelectedEmployee:(Employee*)employeeIn

在我的 appDelegate 中并给它选定的“Employee”,因此该实例有一个可以合作的员工。我确信,它会获取给定的员工,因为 NSLog 总是正确地打印出来。
名为“mikk”的 NSTextField 在 IB 中正确链接,因为它在 awakeFromNib 方法中将标签文本设置为“hello”。所以主要问题是:为什么我不能在其他地方设置标签文本?

我知道这看起来很奇怪/愚蠢,但是如果您需要更多信息(如果您可以更具体的话,还需要什么)和建议以使本文更具可读性,请告诉我。

编辑:查看代码,只留下“i-think-important-bits”。还保留了 IBOutlet,对目标没有任何影响。

最佳答案

尝试改变

@property (assign) IBOutlet NSTextField *mikk; 

@property (retain) IBOutlet NSTextField *mikk; 

关于objective-c - 无法更改 NSTextField 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6373150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com