gpt4 book ai didi

cocoa NSTextField

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

我在从不同类中的 NSTExtField 访问值时遇到问题,这里是代码:

AppDelegate.h

#import <Cocoa/Cocoa.h>

@interface AppDelegate : NSObject <NSApplicationDelegate>

@property (assign) IBOutlet NSWindow *window;
@property (weak) IBOutlet NSTextField *numberOfPhrases;

@end

AppDelegate.m

#import "AppDelegate.h"

@implementation AppDelegate
@synthesize numberOfPhrases;


- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSLog(@"%@",[numberOfPhrases stringValue]);
}

TestClass.h

@interface TestClass : NSObject

- (IBAction)doSomething:(id)sender;

@end

测试类.m

@implementation TestClass

- (IBAction)doSomething:(id)sender {


NSLog(@"%@",[numberOfPhrases stringValue]); ?????????


}

最佳答案

如果没有链接,您显然无法访问另一个类中的文本字段值。

要访问文本字段的值,您需要在此类中再添加一个 IBOutlet,或者为 AppDelegate 添加一个 IBOutlet,以便您可以访问其属性。

TestClass.h

@interface TestClass : NSObject
{
IBOutlet NSTextField *numberOfPhrases; // connect it to the new referencing outlet of text field by dragging a NSObject object in your xib and setting its class to "TestClass"
}

- (IBAction)doSomething:(id)sender;

@end

或者另一种选择是在 TestClass 中拥有 AppDelegate 的 IBOutlet (因为如果您只创建 AppDelegate 的新实例而不是其 IBOutlet,那么将创建一个不同的文本字段实例,并且您将无法访问文本字段的值)

TestClass.h

@interface TestClass : NSObject
{
IBOutlet AppDelegate *appDel; // connect in the xib
}

- (IBAction)doSomething:(id)sender;

@end

测试类.m

@implementation TestClass : NSObject

- (IBAction)doSomething:(id)sender
{
[[appDel numberOfPhrases]stringValue]; //get the string value in text field
}

@end

关于 cocoa NSTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21269406/

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