kub*_*ubi 180 iphone cocoa-touch uitextfield uikeyboard ios
我知道当我想解开键盘时,我需要告诉我的UITextField辞职第一响应者,但我不知道如何知道用户何时按下键盘上的"完成"键.我可以留意通知吗?
kub*_*ubi 348
我将代表设置UITextField为我的ViewController班级.
在该课程中,我实现了以下方法:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
Run Code Online (Sandbox Code Playgroud)
Jas*_*oco 47
如果将文本字段的DidEndOnExit事件连接到InterfaceBuilder中的操作(IBAction),则在用户解除键盘(使用返回键)时将发送消息,并且发送方将是对触发事件的UITextField的引用.
例如:
-(IBAction)userDoneEnteringText:(id)sender
{
UITextField theField = (UITextField*)sender;
// do whatever you want with this text field
}
Run Code Online (Sandbox Code Playgroud)
然后,在InterfaceBuilder中,将文本字段的DidEndOnExit事件链接到控制器上的此操作(或者用于链接UI中的事件的任何操作).每当用户输入文本并解除文本字段时,控制器将发送此消息.
小智 32
您还可以在控制器中创建方法
-(IBAction)editingEnded:(id)sender{
[sender resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
然后在IB连接检查器中连接事件"退出时结束".
小智 19
库比,谢谢.你的代码工作了.只是为了明确(对于新手来说)就像你说你必须将UITextField's' 设置delegate为等于文本字段所在的ViewController.无论何时何地,您都可以这样做.我选择了这个viewDidLoad方法.
- (void)viewDidLoad
{
// sets the textField delegates to equal this viewController ... this allows for the keyboard to disappear after pressing done
daTextField.delegate = self;
}
Run Code Online (Sandbox Code Playgroud)
mat*_*att 18
这是一个获取自动键盘解雇行为的技巧,完全没有代码.在nib中,在Identity检查器中编辑First Responder代理对象,添加新的第一响应者操作; 我们称之为dummy:.现在将文本字段的Did End on Exit事件挂钩到dummy:First Responder代理对象的操作.而已!由于文本字段的真的结束就退出事件现在有一个行动目标对的,当用户点击返回文本字段自动解散它的键盘; 并且由于没有为响应者链发送的消息找到处理程序没有惩罚,即使没有dummy:任何地方的实现,应用程序也不会崩溃.
Saf*_*med 10
在Swift中,您可以在Controller中编写IBAction ,并将文本字段的Did End On Exit事件设置为该操作
@IBAction func returnPressed(sender: UITextField) {
self.view.endEditing(true)
}
Run Code Online (Sandbox Code Playgroud)
Gul*_*iya 10
Swift 4.2 它会工作 100%
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
self.textField.delegate = self
}
// hide key board when the user touches outside keyboard
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
// user presses return key
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
189667 次 |
| 最近记录: |