我正在尝试使用textDocumentProxy从UIInputViewController中显示的另一个视图控制器插入一些文本。我正在使用NSNotificationCenter发布“SendText”通知,并将KeyboardViewController addObserver发布到此通知。第一次工作,但当我解除视图控制器并再次出现。它不起作用。收到通知。为什么它第一次工作,当我再次出现ListViewController时,它不起作用?
KeyboardViewController.m
- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sendText:) name:kKeyboardSendTextNotification object:nil];
}
- (void)sendText:(NSNotification *)notif
{
[self.textDocumentProxy insertText:notif.object];
}
ListViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Place *place = self.collections[indexPath.row];
NSString *message = [NSString stringWithFormat:@"%@? %@, %@", self.selectedType, place.name, place.mobileUrl];
[[NSNotificationCenter defaultCenter] postNotificationName:kKeyboardSendTextNotification object:message];
}
答案 0 :(得分:0)
为什么要使用通知执行此简单任务?您只需按原样调用insertText:
方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Place *place = self.collections[indexPath.row];
NSString *message = [NSString stringWithFormat:@"%@? %@, %@", self.selectedType, place.name, place.mobileUrl];
[self.textDocumentProxy insertText:message];
}