gpt4 book ai didi

objective-c - NSTextFieldCell 坐标

转载 作者:行者123 更新时间:2023-12-03 16:25:05 24 4
gpt4 key购买 nike

我试图获取 NSTextFieldCell 的 NSPoint 坐标,但 NSTextFieldCell 不是从 NSView 继承的,因此没有框架方法。关于如何解决这个问题有什么想法吗?

我正在尝试使用 Matt Gemmel 的 MAAttachedWindow 将小帮助弹出窗口附加到某些元素。我想将它附加到窗口上的某个区域,除了通过手动弄乱 x 和 y 坐标将其组合在一起之外,我不知道如何获取坐标。

最佳答案

您可以调用[theCell controlView]来获取对拥有特定单元格的控件的引用。如果 NSTextFieldCell 对象是简单控件的一部分,例如 NSTextField,则以下内容应该足够了:

NSRect cellFrame = [[theCell controlView] frame];
NSPoint origin = cellFrame.origin;
//..

但是,如果 NSTextFieldCell 是更复杂控件的一部分,例如 NSTableView,其中单个单元格在多个位置使用,则您将需要更多信息以确定正确的矩形。 NSCell 提供了 representedObject 方法,可以帮助您确定 NSTableView 中的哪个对象由单元格表示在那个特定的时刻。由于不了解您的具体案例,我不知道在这方面需要提供多少详细信息。

这里是一种可能的解决方案,假设您能够从存储在 representedObject 中的对象中辨别行和列信息:

NSTableView * tableView = [theCell controlView];
id cellObject = [theCell representedObject];

NSInteger row = //... determine from representedObject
NSInteger col = //... determine from representedObject

NSRect cellFrame = [tableView frameOfCellAtColumn:col row:row];

关于objective-c - NSTextFieldCell 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/918008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com