微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法更改NSTextField文本

如何解决无法更改NSTextField文本

| 我对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  
它可能看起来像f-d,但要点是我调用方法
- (void)setSelectedEmployee:(Employee*)employeeIn
在我的appDelegate中,并为它提供所选的\“ Employee \”,因此该实例具有一个可与之合作的员工。我肯定知道,它可以获取给定的雇员,因为NSLog总是正确地打印出来。 名为\“ mikk \”的NSTextField在IB中已正确链接,因为它在awakeFromNib方法中将标签文本设置为\“ hello \”。所以主要的问题是:为什么我不能在其他地方设置标签文本? 我知道这看起来很奇怪/愚蠢,但请告诉我,如果您需要更多信息(如果可以的话,还可以提供什么信息)以及使该文本更具可读性的建议。 编辑:查看代码,仅保留\“ i-think-important-bits \”。还保留了IBOutlet,对目标没有任何影响。     

解决方法

        您正在使用垃圾收集吗?这是有关笔尖加载文档关于垃圾回收下的对象保留的内容:   图中的大多数对象都保存在   通过强大的参考记忆   在对象之间。只有   nib文件中的顶级对象   最初没有强大的参考资料。   因此,您的代码必须创建强大的   引用这些对象以防止   对象图被释放。 因此,如果您对包含文本视图(可能是视图或窗口)的顶级对象没有很好的引用,则可能正在收集整个对象图。     ,        尝试改变
@property (assign) IBOutlet NSTextField *mikk; 
@property (retain) IBOutlet NSTextField *mikk; 
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?