检测空UITextField中的Backspace是否有任何方法可以检测到背空间/删除键按在iphone键盘上UITextField那是空的?我想知道什么时候背空间只在以下情况下才按下UITextField是空的。根据@AlexReynolds在评论中的建议,我在创建文本字段时添加了以下代码:[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleTextFieldChanged:)
name:UITextFieldTextDidChangeNotification
object:searchTextField];收到此通知(handleTextFieldChanged函数),但当我按下背空间输入一个空字段。有什么想法吗?这个问题似乎有些混乱。控件时,我希望收到通知。背空间按下键。就这样。但是解决方案也必须在UITextField已经空了。
3 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
SWIFT 4:
UITextField:
// MyTextField.swiftimport UIKitprotocol MyTextFieldDelegate {
func textFieldDidDelete()}class MyTextField: UITextField {
var myDelegate: MyTextFieldDelegate?
override func deleteBackward() {
super.deleteBackward()
myDelegate?.textFieldDidDelete()
}}// ViewController.swiftimport UIKitclass ViewController: UIViewController, MyTextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// initialize textField
let input = MyTextField(frame: CGRect(x: 50, y: 50, width: 150, height: 40))
// set viewController as "myDelegate"
input.myDelegate = self
// add textField to view
view.addSubview(input)
// focus the text field
input.becomeFirstResponder()
}
func textFieldDidDelete() {
print("delete")
}}目标-C:
UITextField:
//Header//MyTextField.h//create delegate protocol@protocol MyTextFieldDelegate <NSObject>@optional- (void)textFieldDidDelete;
@end@interface MyTextField : UITextField<UIKeyInput>//create "myDelegate"@property (nonatomic, assign) id<MyTextFieldDelegate>
myDelegate;@end//Implementation#import "MyTextField.h"@implementation MyTextField- (void)deleteBackward {
[super deleteBackward];
if ([_myDelegate respondsToSelector:@selector(textFieldDidDelete)]){
[_myDelegate textFieldDidDelete];
}}@endUIViewControllerUITextFields 我的代表self:
//View Controller Header#import "MyTextField.h"//add "MyTextFieldDelegate" to you view controller@interface ViewController :
UIViewController <MyTextFieldDelegate>@end//View Controller Implementation- (void)viewDidLoad {
//initialize your text field
MyTextField *input =
[[MyTextField alloc] initWithFrame:CGRectMake(0, 0, 70, 30)];
//set your view controller as "myDelegate"
input.myDelegate = self;
//add your text field to the view
[self.view addSubview:input];}//MyTextField Delegate- (void)textFieldDidDelete {
NSLog(@"delete");}
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
-[UITextField deleteBackward].
UITextInputUIKeyInputdeleteBackwardUILabelUIKeyInputUITextInputUIKeyInput
添加回答
举报
0/150
提交
取消
