我在我的应用中实施了聚光灯搜索。它与静态文本一起工作正常。我想获取在聚光灯搜索栏中输入的文本,以便我可以根据它显示文本。
-(void)setUpCoreSpotlight
{
CSSearchableItemAttributeSet * attributeSet = [[CSSearchableItemAttributeSet alloc]
initWithItemContentType:(NSString *)kUTTypeItem];
attributeSet.displayName = [NSString stringWithFormat:@"%@ - Currently playing with student %@",kApplicationName,[[ModelDataManager sharedModelManager] objSelectedStudent].StudentName];
attributeSet.title = kApplicationName;
attributeSet.contentDescription = [NSString stringWithFormat:@"Curriculums assigned to %@ : %@",[[ModelDataManager sharedModelManager] objSelectedStudent].StudentName, [[ModelDataManager sharedModelManager] objSelectedStudent].CurriculumName];
NSMutableArray *arrStudents = [[[ModelDataManager sharedModelManager]arrStudents] valueForKey:@"StudentName"];
NSMutableArray *arrKeywords = [[NSMutableArray alloc]initWithObjects:@"student",@"colorskit",@"play",@"prrogram", nil];
[arrKeywords addObjectsFromArray:arrStudents];
attributeSet.keywords = arrKeywords;
UIImage *image = [UIImage imageNamed:@"CC-Cover"];
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];
attributeSet.thumbnailData = imageData;
CSSearchableItem *item1 = [[CSSearchableItem alloc]
initWithUniqueIdentifier:@"program"
domainIdentifier:@"http://www.colorsacademy.com/in/"
attributeSet:attributeSet];
attributeSet = [[CSSearchableItemAttributeSet alloc]
initWithItemContentType:(NSString *)kUTTypeItem];
attributeSet.displayName = kApplicationName;
attributeSet.title = kApplicationName;
attributeSet.contentDescription = @"You can teach this program ";
attributeSet.keywords = keywords;
image = [UIImage imageNamed:@"enzymes-cover"];
imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];
attributeSet.thumbnailData = imageData;
...
...
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)activity restorationHandler:(void (^)(NSArray *))restorationHandler
{
NSString * valueCSSearchableItemActionType;
BOOL wasHandled = NO;
if ([CSSearchableItemAttributeSet class]) //iOS 9
{
valueCSSearchableItemActionType = CSSearchableItemActionType;
} else { // iOS 8 or earlier
valueCSSearchableItemActionType = @"not supported";
}
if ([activity.activityType isEqual: valueCSSearchableItemActionType])
//Clicked on spotlight search, item was created via CoreSpotlight API
{
//…handle the click here, we can assume iOS 9 from now on…
NSString * activityIdentifier = [activity.userInfo valueForKey:CSSearchableItemActivityIdentifier];
wasHandled = YES;
NSLog(@"Continuing user activity %@", activityIdentifier);
} else {
//the app was launched via Handoff protocol
//or with a Universal Link
}
return wasHandled;
}
我无法获取已输入的文字。甚至"应用程序continueUserActivity"方法也没有被调用。如果有人有任何想法,请帮忙。