在我的应用程序中,我在后台(NSOperationQueue)进行了一些搜索,一旦完成并在主队列的 UITableView 中显示结果,但 UIKeyboardType 总是被重置。
用户更改后如何获取当前的 UIKeyboardType?
我尝试在搜索之前将类型存储在变量中,但正在执行搜索的 textField 并未返回可见的实际键盘类型,而是返回默认设置为的 UIKeyboardType。
在我的应用程序中,我在后台(NSOperationQueue)进行了一些搜索,一旦完成并在主队列的 UITableView 中显示结果,但 UIKeyboardType 总是被重置。
用户更改后如何获取当前的 UIKeyboardType?
我尝试在搜索之前将类型存储在变量中,但正在执行搜索的 textField 并未返回可见的实际键盘类型,而是返回默认设置为的 UIKeyboardType。
这是我为解决我的问题所做的。我检查了他们在搜索字段中输入的最后一个字符,并根据它确定了 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 文本字段设置的默认键盘切换回键盘。这对我很有用。
您可以使用textField.keyboardType
并获取文本字段的键盘类型...