檢測空UITextField中的Backspace是否有任何方法可以檢測到背空間/刪除鍵按在iphone鍵盤上UITextField那是空的?我想知道什么時候背空間只在以下情況下才按下UITextField是空的。根據(jù)@AlexReynolds在評論中的建議,我在創(chuàng)建文本字段時添加了以下代碼:[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleTextFieldChanged:)
name:UITextFieldTextDidChangeNotification
object:searchTextField];收到此通知(handleTextFieldChanged函數(shù)),但當(dāng)我按下背空間輸入一個空字段。有什么想法嗎?這個問題似乎有些混亂??丶r,我希望收到通知。背空間按下鍵。就這樣。但是解決方案也必須在UITextField已經(jīng)空了。
3 回答

撒科打諢
TA貢獻(xiàn)1934條經(jīng)驗 獲得超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") }}
目標(biāo)-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]; }}@end
UIViewController
UITextFields
我的代表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貢獻(xiàn)1788條經(jīng)驗 獲得超4個贊
-[UITextField deleteBackward]
.
UITextInput
UIKeyInput
deleteBackward
UILabel
UIKeyInput
UITextInput
UIKeyInput
添加回答
舉報
0/150
提交
取消