小编N F*_*N F的帖子

滚动 NSTableView 使一行居中

我想以编程方式滚动 NSTableView 以便特定行居中。滚动 NSTableView 以便特定行可见很简单:

[theTableView scrollRowToVisible:pos];
Run Code Online (Sandbox Code Playgroud)

但是,通常有问题的行位于可见区域的底部,而我希望它大致位于中心。

另一种愚蠢的方法是在我想要可见的行之外滚动几行,例如:

    // pos = index of desired row
    // numRows = number of rows in the table
    NSRect visibleRect = [resultsTableView visibleRect];
    NSRange visibleRange = [resultsTableView rowsInRect:visibleRect];
    NSUInteger offset = visibleRange.length/2;
    NSUInteger i;
    if (pos + offset >= numRows)
        i = numRows - 1;
    else if (pos < visibleRange.length)
        i = pos;
    else
        i = pos + offset;
    [resultsTableView scrollRowToVisible:i];
Run Code Online (Sandbox Code Playgroud)

如果所有行的高度完全相同,这将起作用,但我对制作具有不同高度的行感兴趣。

有没有更好的,也许更直接的方法来做到这一点?例如,我注意到 NSTableView 被包裹在一个 NSScrollView 中......(该表是使用 Interface Builder 制作的。)

谢谢!

cocoa objective-c

5
推荐指数
2
解决办法
4190
查看次数

makefile中的嵌套循环,与"-j n"兼容

在bobbogo对Stack Overflow问题的回答如何在makefile中编写循环?,它显示了如何在makefile中编写以下伪代码的等价物:

For i in 1, ..., n:
  Add the following rule "job_$i: ; ./a.out $i > output_$i"
Run Code Online (Sandbox Code Playgroud)

正如答案本身所述,bobbogo解决方案的优点在于,如果指定"-j num_threads",则作业将并行运行.其他明显的,更简单的解决方案,没有这个属性.

我的问题:我怎么能做同样的事情,但对于嵌套循环,即:

For i in 1, ..., n:
  For j in 1, ..., m:
    Add the following rule "job_$i_$j: ; ./a.out $i $j > output_$i_$j"
Run Code Online (Sandbox Code Playgroud)

我只期待使用GNU Make.提前致谢!

makefile gnu-make

2
推荐指数
1
解决办法
2316
查看次数

标签 统计

cocoa ×1

gnu-make ×1

makefile ×1

objective-c ×1