检测用户是否按下Go或隐藏键盘按钮UITextField

时间:2012-04-14 06:03:09

标签: iphone objective-c ios xcode

我正在制作浏览器类型应用..

现在我让网址进入 textfield ...显示键盘..

现在我已经把它变成了Url型键盘.. 它有Go按钮,而iPad则是一个隐藏键盘的按钮..

-(BOOL)textFieldShouldReturn:(UITextField *)textField

我知道上面是当用户点击键盘返回时调用的方法。 但对于iPad ..有两个不同的东西..如果用户按下Go ...我想要去新的URL。如果用户按下隐藏键盘,则保持窗口原样。但问题是事件报告

-(BOOL)textFieldShouldReturn:(UITextField *)textField

所以如何区分用户按下Go ..或者只是隐藏键盘..

4 个答案:

答案 0 :(得分:12)

当用户点击隐藏按钮时,会调用 UIKeyboardWillHideNotification ,因此您应该注册观察

[[NSNotificationCenter defaultCenter] addObserver:self
                                     selector:@selector(keyboardWillHideHandler:)
                                         name:UIKeyboardWillHideNotification
                                       object:nil];


- (void) keyboardWillHideHandler:(NSNotification *)notification {
    //show another viewcontroller here
}

答案 1 :(得分:4)

显然现在看来Go按钮只报告

-(BOOL)textFieldShouldReturn:(UITextField *)textField

并隐藏键盘按钮不会..

我很确定昨天情况并非如此......但无论如何......我相信我只能为这个陷入困境负责。如果有人需要清算,我会留下问题。

答案 2 :(得分:0)

你尝试使用键盘的触控功能,我认为它会起作用。

答案 3 :(得分:0)

至少在iOS 12上,点击“隐藏”按钮(在iPad上)会调用textFieldDidEndEditing(_:)

希望这会有所帮助。