我希望能够保存 NSTextView 的当前文本和可见区域并恢复它。使用visibleRect和scrollRectToVisible:似乎会产生不一致的结果。如果我只是这样做:
- (void)restorePosition
{
NSRect r = [self.textView visibleRect];
[self.textView.layoutManager replaceTextStorage: self.textView.textStorage];
[self.textView scrollRectToVisible: r];
}
Run Code Online (Sandbox Code Playgroud)
当视图距离顶部不到 85 行时,视图将保持在原位,但我走得越远,它就会变得越远。从顶部开始 200 行,最终为 277,在 300 行,最终为 408,依此类推。
如果没有replaceTextStorage,它也可以按预期工作,但替换文本并找到以前的位置才是重点。替换文本的某些问题会导致线矩形计算变得不稳定。
显然,我计划从实际应用程序中保存的对象获取新的visibleRect和textStorage,但这说明了最少代码的问题。
有任何想法吗?
我试图在swift中做一些网络代码,类型检查让我适合.
var sock: CInt = ...
var rin: sockaddr_in
var rlen = socklen_t(sizeof(sockaddr_in))
var buffer: CChar[] = CChar[](count: 128, repeatedValue: 0)
let len = recvfrom(sock, &buffer, 128, 0, &rin, &rlen)
Run Code Online (Sandbox Code Playgroud)
编译器抱怨(非常密码)recvfrom关于&rin指向sockaddr_in而不是指针的事实sockaddr.我尝试了各种方法来转换指针类型,但我似乎无法做到这一点.
如果我声明它是一个sockaddr我可以得到这个编译,但后来我不能把它看作一个sockaddr_in.