- (NSArray *)control:(NSControl *)control textVIEw:(NSTextVIEw *)textVIEw completions:(NSArray *)words forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index
我有2个表,一个在主表中,另一个在d出窗口中.d出窗口从工作表中以模态方式打开.
两个表都具有与NSTextVIEw相同的子类的列.
两个表都具有相同的文件所有者作为委托,但是仅为主表中的表调用委托方法.
奇怪的是,从d出窗口中的表中正确调用了所有其他委托方法:
- (BOol)control:(NSControl *)control textShouldEndEditing:(NSText *)fIEldEditor- (BOol)control:(NSControl *)control isValidobject:(ID)object- (BOol)tableVIEw:(NStableVIEw *)atableVIEw shouldEdittableColumn:(NStableColumn *)atableColumn row:(NSInteger)rowIndex
更新:
关于NStableVIEw结构:
这些表是基于单元格的NStableVIEw.该列由NSTextFIEldCell制作,我已经将其子类化.下面的代码来自子类NSTextFIEldCell.
该方法返回另一个子类,名为CBautocompleteTextFIEld,这次继承自NSTextVIEw,它是单元格内的文本编辑器.
- (NSTextVIEw *)fIEldEditorForVIEw:(NSVIEw *)aControlVIEw{ return [[[CBautocompleteTextFIEld alloc] init] autorelease];}
所以最后,类调用complete:是NSTextVIEw的子类.
解决方法 尝试这个,如果它有帮助,为了执行自动完成,你需要调用完成:在文本字段字段编辑器中使用下面的委托方法: –- (voID)controlTextDIDChange:(NSNotification *)notification { if( autoComplete ){ return; } else { autoComplete = YES; [[[notification userInfo] objectForKey:@"NSFIEldEditor"] complete:nil]; }}总结
以上是内存溢出为你收集整理的objective-c – 未从d出窗口调用NSTextView自动完成委托方法全部内容,希望文章能够帮你解决objective-c – 未从d出窗口调用NSTextView自动完成委托方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)