【发布时间】:2012-03-08 07:30:49
【问题描述】:
我想在不使用文本字段的情况下拉起键盘,因此我将 UIToolbar 子类化并使其符合 UIKeyInput 协议。根据我使用简单 NSLog 打印输出的测试,我成功地读取了用户的关键输入。我的问题是我需要输入键盘的文本来更新由与我的自定义工具栏相同的视图控制器管理的表视图。基本上我的问题是:如果我的更新方法在我的自定义工具栏类中,我如何告诉它更新表格视图?或者,如果我的更新方法在我的视图控制器类中,我如何确保每次按下某个键时都会调用它?
我尝试让我的工具栏在按下某个键时发送通知,如下所示:
- (void)insertText:(NSString *)text {
[[NSNotificationCenter defaultCenter] postNotificationName:@"keyPressed" object:self];
然后用视图控制器监听它
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateForKeyPressed:) name:@"keyPressed" object:nil];
...
- (void)updateForKeyPressed:(NSNotification *)note {
[self update];
}
这没有用,但这并不奇怪,因为我从在线文章中得到了这个想法,而且我相当肯定我做错了。在这一点上,我几乎是在捣乱,如果有人能指出我正确的方向,那就太好了。与往常一样,非常感谢任何帮助。如果有人想查看我的更多代码,请告诉我,我可以发布。
【问题讨论】:
-
只是我的猜测 [((MyViewController *)[[myToolBar superview] nextResponder]) update]
-
我第一次误读了您的评论,并忽略了 nextResponder 电话。这成功地调用了更新方法,但是方法内部的操作没有被执行。我将更新我的问题以反映错误的真正来源。顺便谢谢你。
标签: iphone objective-c model-view-controller nsnotificationcenter uikeyinput