gpt4 book ai didi

macos - 以编程方式使用自定义文本初始化 NSTextfield

转载 作者:行者123 更新时间:2023-12-03 17:53:39 30 4
gpt4 key购买 nike

我的 XIB 文件中有一个文本字段标签,用于显示我想要动态加载的一些文本。这是我的应用程序的当前流程:

-在 XIB 文件中,文本字段设置为静态文本- 运行应用程序时,窗口会加载文本字段和静态文本-加载后,调用 windowDidLoad 并将文本更改为动态内容

- (void)windowDidLoad
{
[super windowDidLoad];

NSDate *currentDate = [NSDate date];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:currentDate];
[myTextField setStringValue:[NSString stringWithFormat:@"Year: %ld", [components year]]];
}

不幸的是,文本更改之前有一点延迟。将文本字段初始化为动态内容的最佳方法是什么?因此 myTextField 不必初始化为静态文本。

最佳答案

您可以创建一个 NSTextField 子类,重写 awakeFromNib 方法并将代码放在那里......这是一些(未经测试的)代码:

// MyDateTextField.h

@interface MyDateTextField : NSTextField

@end



// MyDateTextField.m

@implementation MyDateTextField

- (void)awakeFromNib {
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:currentDate];
[myTextField setStringValue:[NSString stringWithFormat:@"Year: %ld", [components year]]];
}

@end

或者,您可以在 awakeFromNib 方法中发布 NSNotification,然后在 Controller 中拾取它......这可能是更好的设计,具体取决于您需要文本字段执行的操作。

关于macos - 以编程方式使用自定义文本初始化 NSTextfield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17647195/

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