1

在我的应用程序中,我在后台(NSOperationQueue)进行了一些搜索,一旦完成并在主队列的 UITableView 中显示结果,但 UIKeyboardType 总是被重置。

用户更改后如何获取当前的 UIKeyboardType?

我尝试在搜索之前将类型存储在变量中,但正在执行搜索的 textField 并未返回可见的实际键盘类型,而是返回默认设置为的 UIKeyboardType。

4

2 回答 2

1

这是我为解决我的问题所做的。我检查了他们在搜索字段中输入的最后一个字符,并根据它确定了 UIKeyboardType:

if ([searchText length]>0) {
        NSRange nond = [[searchText substringFromIndex:[searchText length]-1] rangeOfCharacterFromSet:[[NSCharacterSet lowercaseLetterCharacterSet] invertedSet]];
        if (NSNotFound == nond.location) {
            self.currentKeyboardType = UIKeyboardTypeDefault;
        } else {
            self.currentKeyboardType = UIKeyboardTypeNumberPad;
        }
    }

然后在搜索完成后,我将 UIKeyboardType 设置为这个值。在我看来,默认情况下,我的应用程序会根据我为 UISearchBar 文本字段设置的默认键盘切换回键盘。这对我很有用。

于 2013-02-22T12:38:20.960 回答
0

您可以使用textField.keyboardType并获取文本字段的键盘类型...

于 2013-02-21T15:33:31.277 回答