<!--
{
  "availability" : [
    "macOS: 10.5.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSOutlineView/frameOfOutlineCell(atRow:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSOutlineView(im)frameOfOutlineCellAtRow:"
  },
  "title" : "frameOfOutlineCell(atRow:)"
}
-->

# frameOfOutlineCell(atRow:)

Returns the frame of the outline cell for a given row.

```
func frameOfOutlineCell(atRow row: Int) -> NSRect
```

## Parameters

`row`

The index of the row for which to return the frame.

## Return Value

The frame of the outline cell for the row at index `row`, considering the current indentation and the value in the [`indentationMarkerFollowsCell`](/documentation/AppKit/NSOutlineView/indentationMarkerFollowsCell) property. If the row at index `row` is not an expandable row, returns `NSZeroRect`.

## Discussion

You can override this method in a subclass to return a custom frame for the outline button cell. If your override returns an empty rect, no outline cell is drawn for that row. You might do that, for example, so that the disclosure triangle will not be shown for a row that should never be expanded.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)