虽然我设置了 NSTextField 的 nextKeyView,但焦点是通过不同的 NSTextField 获得的
尝试选中/取消选中“自动重新计算 View 循环”
切换“完全键盘访问”
还 try catch 标签
代码
- (BOOL)control:(NSControl*)control textView:(NSTextView*)textView doCommandBySelector:(SEL)commandSelector {
BOOL result = NO;
if (commandSelector == @selector(insertTab:)) {
// tab action:
result = NO;
}
return result;
}
返回是/否,厌倦了将下一个响应者设置为
[self.window makeFirstResponder:self.nextKeyView]
没有成功
最佳答案
使用 selectText:
选择 NSTextField
,同时捕获“Tab”有效(请注意,您必须返回 YES,这意味着您正在处理 Tab)...您不能纯粹依赖 nextKeyView
将其放入您的 NSTextField
子类中并链接 nextKeyView
- (BOOL)control:(NSControl*)control textView:(NSTextView*)textView doCommandBySelector:(SEL)commandSelector
{
BOOL result = NO;
if (commandSelector == @selector(insertTab:)) {
// tab action:
// always insert a tab character and don’t cause the receiver to end editing
if ([self.nextKeyView isKindOfClass:[NSTextField class]]) {
[(NSTextField *)self.nextKeyView selectText:self];
result = YES;
} else {
//[textView insertTabIgnoringFieldEditor:self];
result = NO;
}
}
return result;
}
关于objective-c - NSTextField nextKeyView 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36357141/