Jus*_*tin 6 cocoa nstextview appkit
我正在使用以下代码取消选择NSTextView,如此处所示.不幸的是,什么也没发生.我已经尝试了我所知道的调试它,但一切似乎都正常工作,但它不会影响NSTextView.
代码:
// Sets the scrolling bounds and behavior. This might be useful, but I don't know
[[textView textContainer] setContainerSize:NSMakeSize(FLT_MAX, FLT_MAX)];
[[textView textContainer] setWidthTracksTextView:FALSE];
// The code for deselecting, beginning by making sure it is actually selected (for testing only, as strange as it is)
[textView setSelectable:TRUE];
[textView setDelegate:self];
[_window makeFirstResponder:textView];
NSText *fieldEditor = [_window fieldEditor:TRUE forObject:textView];
[fieldEditor setSelectedRange:NSMakeRange([[fieldEditor string] length],0)];
[fieldEditor setNeedsDisplay:YES];
Run Code Online (Sandbox Code Playgroud)
关于为什么这不起作用的任何想法?我确信我的插座设置正确,因为我可以操纵其他东西,比如它的字符串值.
我不确定NSTextViews是否使用字段编辑器,您是否尝试直接在文本视图上调用该方法?
[textView setSelectedRange:NSMakeRange(textView.string.length, 0)];
Run Code Online (Sandbox Code Playgroud)
例如,可以调整范围位置以将光标移动到开始或结束.在调用此方法之前,您可能还需要检查以确保实际选择了某些内容.
编辑:
从你的评论中听起来你只是想让它辞职第一响应者.你可以通过调用手动完成[textView.window makeFirstResponder:nil];
小智 6
这几乎对我有用;
[textView.window makeFirstResponder:nil];
Run Code Online (Sandbox Code Playgroud)
但是,我将第一响应者设置为nil时遇到了麻烦.如果我将它设置为任何其他视图,它似乎按照您的意愿.
[textView.window makeFirstResponder:[textView superview]];
Run Code Online (Sandbox Code Playgroud)
测试了10.7狮子.
Ben*_*Ben -2
[textView setDelegate:self];
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,你的委托方法之一正在阻止事情发生。请参阅“管理选择”下的文档。
| 归档时间: |
|
| 查看次数: |
4038 次 |
| 最近记录: |