要在它成为第一个响应者时执行此 *** 作,您需要继承NSTokenFIEld(请记住将XIB中的字段类设置为自定义子类的字段)并覆盖-becomeFirstResponder,如下所示:
- (BOol)becomeFirstResponder{ if ([super becomeFirstResponder]) { // If super became first responder,we can get the // fIEld editor and manipulate its selection directly NSText * fIEldEditor = [[self window] fIEldEditor:YES forObject:self]; [fIEldEditor setSelectedRange:NSMakeRange([[fIEldEditor string] length],0)]; return YES; } return NO;}
此代码首先查看超级回答“是”(并成为第一个响应者).如果是,我们知道它将有一个字段编辑器(一个NSText实例),我们可以直接 *** 作它们的选择.所以我们得到它的字段编辑器并设置它的选定范围(我将插入点放在最后一个{lastchar,nolength}范围内).
要在字段完成编辑(返回,跳出等)时执行此 *** 作,请覆盖-textDIDEndEditing:如下所示:
- (voID)textDIDEndEditing:(NSNotification *)aNotification{ [super textDIDEndEditing:aNotification]; NSText * fIEldEditor = [[self window] fIEldEditor:YES forObject:self]; [fIEldEditor setSelectedRange:NSMakeRange([[fIEldEditor string] length],0)];}
在这种情况下,当用户结束编辑时,此方法让super执行其 *** 作,然后查看它是否仍然是第一个响应者.如果是,则它与上面相同:将插入克拉放在字段的末尾.
请注意,此行为不是标准的,并且是意外的.谨慎使用.
总结以上是内存溢出为你收集整理的cocoa – 防止在NSTokenField中选择所有令牌全部内容,希望文章能够帮你解决cocoa – 防止在NSTokenField中选择所有令牌所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)