gpt4 book ai didi

ios - UITextField 的代表不工作...返回按钮没有响应

转载 作者:技术小花猫 更新时间:2023-10-29 10:18:58 24 4
gpt4 key购买 nike

我刚刚开始使用 xcode 和 objective-c 并做了一些非常基本的应用程序,但我遇到的问题是非常基本的。键盘返回按钮不隐藏键盘。

我在互联网上搜索了解决方案,他们说的只是将委托(delegate)连接到文件的所有者并添加函数,它应该可以工作,我这样做了,但没有任何工作。

我有一个 ok 按钮,它可以正常工作,点击屏幕上的任何可用空间也可以正常工作,只有返回按钮....

我正在使用模拟器,尚未在 iphone 上进行测试。 (带有 4.2 模拟器的 xcode 3.2.5 64 位)。

这是应该将委托(delegate)连接到每个 textFiled 的代码行。1. 我已经尝试返回 YESNO,但没有用。2. 我已经尝试了 textField 的特定对象名称和这种通用方式,但都没有用。

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}

在:基本 View Controller 连接 -> 连接 -> socket 中,我有:委托(delegate) -- 文件所有者。在引用网点的文件所有者中有:delegate - Round style text.....

编辑 - 我之前忘了提及,我已经检查过并且没有调用该方法!!!

- (BOOL)textFieldShouldReturn:(UITextField *)textField{
NSLog(@"Working!!!");
[textField resignFirstResponder];
return YES;

我应该怎么做才能让它发生?这就是为什么人们说要连接代表,但在我的情况下它是连接的并且没有触发功能......我知道这是一个愚蠢的问题但是对于像我这样的 nobie 来说解决方案并不明显......

好的,另一个编辑 - 使用我所有的代码:只是无法理解该做什么....这是:basicViewController.h:

#import <UIKit/UIKit.h>

@interface basicViewController : <#superclass#> <UITextFieldDelegate>

@interface basicViewController : UIViewController <UITextFieldDelegate> {
//every object that we want to interact with (like text field or lable) is call an outlet!!!!
//here we define the outlets for our program
IBOutlet UITextField *txtName;
IBOutlet UILabel *lblMessage;
}

//here are the getters and setter for our outlets
@property (nonatomic, retain) IBOutlet UITextField *txtName;
@property (nonatomic, retain) IBOutlet UILabel *lblMessage;

//method decleration for the OK button action
- (IBAction) doSomething;



//method for hiding the keyboard when clicking on empty area in the app
//we will put an invisible button on all area and clicking on it will make keyboard disapear
- (IBAction) makeKeyboardGoAway;

@end

这是basicViewController.m:

 #import "basicViewController.h"

@implementation basicViewController

//synthesizeing the objects that we made' this will create the getter and setters automaticly
@synthesize txtName;
@synthesize lblMessage;

- (IBAction) doSomething{
// makeing keyboard disapear when pressing ok button (doing that form the text field)
//when pressing the OK button, the keyboard will disapear and when clicking in the text field it will show again
[txtName resignFirstResponder];



NSString *msg = [[NSString alloc] initWithFormat:@"Hello, %@",txtName.text];

//the objective-c way for setting the test in the text field
[lblMessage setText:msg];
//the regular object oriented way
//lblMessage.text = msg;
[msg release];
}

- (IBAction) makeKeyboardGoAway{
[txtName resignFirstResponder];
}

//when clicking the return button in the keybaord
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
NSLog(@"Working!!!");
[textField resignFirstResponder];
return YES;
}


- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}


- (void)dealloc {
[super dealloc];
}

@end

也许现在我更清楚了,抱歉我以前没有这样做。任何人都知道我做错了什么?它应该是相当直截了当的......

编辑 - 添加所有元素的图像,希望对我有所帮助 :-) alt text

对于每个试图提供帮助的人来说都是 10 倍......我真的很喜欢这个框架,它在 C++ 和 java、python 和许多其他之后非常棒......我正在写一本书,但是它适用于 ios 3.1,也许这就是问题所在......

最佳答案

首先你应该检查是否textFieldShouldReturn:实际上是通过在方法的开头添加NSLog语句或者断点来调用的。

一旦解决了这个问题,请尝试手动声明您的 View Controller 符合 <UITextFieldDelegate>接口(interface)文件中的协议(protocol):

@interface YourClass : ... <UITextFieldDelegate>

同时为您的 UITextField 声明属性(property)和销售点, 在 IB 中建立适当的连接并手动声明 self作为 UITextField代表:

self.yourUITextFieldObject.delegate = self;

完成后,查看上面的方法是否正在被调用,并确保返回 YES。

关于ios - UITextField 的代表不工作...返回按钮没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438478/

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