textDocumentProxy insertText在自定义键盘扩展中不起作用

时间:2014-11-13 10:03:45

标签: ios nsnotificationcenter ios-app-extension

我正在尝试使用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];
}

1 个答案:

答案 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];
}