我创建一个 windows 有一个NSSplitview
. 它有两个子视图,视图A 和视图B,它们有一些子视图。如果 viewA 或其子视图获得焦点,则将窗口的标题设置为 viewA 的 stringValue,并将 viewB 设置为依此类推。
我该怎么做?我尝试重写视图的
成为/访问/reignFirstResponser
对于 viewA/B 或它们的 subView (a NSTableView
) 但失败了。
e,我再次尝试将 tablview 上的 becomeFirstresponse 覆盖为
BOOL ret = [super becomeFirstResponder];
[NSApp sendAction:@selector(requestString:) to:Nil from:self.window.windowController];
return ret;
有用!但是通过编码,附加了新的子视图。所以我需要一些更聪明更清晰的方法。
我知道了!在窗口委托中,我将 windowDidUpdate 实现为:
- (void)windowDidUpdate:(NSNotification *)notification {
[NSApp sendAction:@selector(requestString:) to:Nil from:self.window.windowController];
}
-(IBAction)requestString:(id)sender 方法是 viewA/B 的 Controller 方法。