【问题标题】:xcode: TextField.text return nil no matter what is the input: [New Referencing Outlet]?xcode:TextField.text 无论输入是什么都返回 nil:[新引用插座]?
【发布时间】:2012-03-11 17:58:39
【问题描述】:

我有一个标签栏应用程序。 在其中一个视图(.xib)中,有一个文本字段和一个按钮。该按钮应该保存在 textField 中输入的文本。

但是,无论我输入什么,它总是在调试的 textField.text 中读取 (nil)。

当我右键单击 .xib 中的 textField 时,我无法将 [New Referenceing Outlet] 拖到 [File's Owner]。我只能将 [delegate] 拖到 [File's Owner]。有谁知道为什么我不能这样做?

.h 文件下方:


@interface AddDebtorViewController : UIViewController
{
    UITextField *tDebtorName;
}

@property (retain, nonatomic) IBOutlet UITextField *tDebtorName;

-(IBAction)returnButPressed:(id)sender;
-(IBAction)addDebtorButPressed:(id)sender;

@end  

下面是.m文件:


#import "AddDebtorViewController.h"
@implementation AddDebtorViewController
@synthesize tDebtorName;

- (IBAction)addDebtorButPressed:(id)sender
{
    NSString *debtorName = [[NSString alloc] init]; 
    debtorName = tDebtorName.text;
    NSLog(debtorName);
}
...
@end

【问题讨论】:

  • 您必须将您的 UITextfield 组件与 tDebtorName Outlet 连接起来。这样您就可以从该文本字段中获取输入

标签: objective-c ios xcode


【解决方案1】:

您必须选择文件的所有者,按鼠标右键,找到您的插座并将其与 ui 元素链接。

【讨论】:

  • 当我右键单击,然后在“新引用出口”下将它拖到文本字段,它只有“代表”选项。所以我选择委托选项。它不工作。当我右键单击 textField 时,它会在 Owner 下显示 [delegate] => [File's Owner],而不是 [New Referencing Outlet]。
  • 我已经完全重写了我的答案,不便之处,敬请原谅。插座和ui元素的类型可能不同吗?在这种情况下,您无法在 IB 中链接它们。
  • 当我右键单击,然后在“新引用出口”下将它拖到文本字段,它只有“代表”选项。所以我选择委托选项。它不工作。当我右键单击 textField 时,它在 Owner 下显示 [delegate] => [File's Owner],但不在 [Reference Outlet] 下显示。
  • 1.检查 outlet 和 ui 对象的类型是否相同。 2.检查Files'Owner是否正确配置(身份检查器中的“Class”属性,必须等于“AddDebtorViewController”)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 2014-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多