【问题标题】:How can I bind to NSTableColumn's headerTitle?如何绑定到 NSTableColumn 的 headerTitle?
【发布时间】:2023-03-22 07:01:01
【问题描述】:

我想将 NSTableColumn 的 headerTitle 属性绑定到模型层中的 NSMutableArray(通过 NSArrayController)。

基本上我想要一个可以更改值并更新表列标题标题的数组。这合理吗?

但是,the headerTitle binding 想要一个 NSString,我不确定如何通过我的 NSArrayController 将我的模型对象连接到此绑定。对于这个问题,谷歌没有给出太多的点击。

我的模型层由两个类组成(两者都适当地兼容 KVC)。第一个是代表单列标题的模型,它有一个属性title

// A model class representing the column title of single NSTableColumn
@interface ColumnTitle : NSObject
@property NSString *title;
+ (ColumnTitle*) columnTitleWithTitle:(NSString*) aString;
@end

第二个模型对象,表示一组有序的 ColumnTitle 对象,

// Class representing an order collection of model items
@interface TableColumnTitles : NSObject
@property NSMutableArray* columnTitles;  // an array of ColumnTitle objects
// These are the KVC array accessors
-(void) insertObject:(ColumnTitle*)columnTitle inColumnTitlesAtIndex:(NSUInteger)index;
- (void)removeObjectFromColumnTitlesAtIndex:(NSUInteger)index;
- (void)replaceObjectInColumnTitlesAtIndex:(NSUInteger)index withObject:(ColumnTitle*)columnTitle;
@end

请注意,TableColumnTitles 对象实现了上述绑定所需的数组访问器。有什么建议吗?

【问题讨论】:

    标签: macos cocoa nstableview cocoa-bindings nstablecolumn


    【解决方案1】:

    以前没有尝试过,但您实际要求的是使用 KVC 用于数组索引。除了一些结果表明它(还)不可能(检查this

    我能想到的最简单的解决方法是简单地为数组索引添加专用属性。虽然不好,但可以。

    因此,对于名为 myArray 并包含具有 title 类型为 NSString 属性的对象的 NSMutableArray,您可以执行以下操作:

    @property (nonatomic, readonly, getter = columnOneGetter) NSString *columnOneString;
    
    (NSString*) columnOneGetter
    {
       return myArray[0].title;
    }
    

    当然总是假设他们的数量是事先知道的,我们不是在谈论 200 列 :-)

    【讨论】:

    • 我刚刚开始使用绑定,我不确定如何实施您的想法。你能更详细地解释一下吗?另外,一般来说,您将如何使用NSTableColumnheaderTitle 绑定?我是否以不寻常的方式使用它?我基本上希望能够通过更改数组控制器中的值来设置表头标题;这听起来并没有太大的争议,但我在任何地方都找不到如何做到这一点的例子!
    • 答案已相应编辑 - 通常的免责声明:在浏览器中输入,未经测试或调试等。
    • 将当前选择绑定到标题听起来有点奇怪,至少我想不出一个用例,当您在表更改。
    • 其实我不想绑定到选择,这只是一个例子。我写这个问题的方式有点令人困惑,对此感到抱歉。我基本上想要一个模型NSMutableArray,我允许我修改标题标题。就是这样。
    【解决方案2】:

    我认为这可能/可能不是您所追求的,但快速的谷歌搜索让我来到这里: http://pinkstone.co.uk/how-to-add-touch-events-to-a-uitableviewfooter-or-header/

    编辑:我意识到这是针对 mac(不是 ios),但如果它真的有帮助的话应该很容易翻译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多