如何更改NSOutlineView DisclosureButton Frame

NSOutlineView默認的DisclosureButton是在左邊,如下圖所示:
屏幕快照 2019-01-06 下午7.20.35.png

現(xiàn)在需要將其更改為在右邊,并將其圖片更改:


屏幕快照 2019-01-06 下午7.22.42.png

實現(xiàn)方法如下
1 自定義NSOutlineView

@interface LYOutlineView : NSOutlineView
@end

2 重寫- (void)layout方法

    [super layout];
    for (NSView *view in self.subviews) {
        for (NSView *subView in view.subviews) {
            if ([subView.identifier isEqualToString:NSOutlineViewDisclosureButtonKey]) {
                // 設置圖片
                NSButton *disclosure = (NSButton *)subView;
                disclosure.imageScaling = NSImageScaleProportionallyUpOrDown;
                disclosure.image = [NSImage imageNamed:@"jiantouyou"];
                disclosure.alternateImage = [NSImage imageNamed:@"jiantouxia"];
                // 設置frame
                CGFloat x = view.frame.size.width - 100;
                CGFloat y = disclosure.frame.origin.y;
                [disclosure setFrameOrigin:NSMakePoint(x, y)];
            }
        }
    }
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,658評論 1 32
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,334評論 0 17
  • 不止在移動開發(fā)領域,甚至對于所有的前端開發(fā),頁面跳轉都是最基本的場景轉換,是開發(fā)過程中最基本的問題。對于IOS初學...
    myzhing閱讀 1,197評論 0 1
  • 我來這個地方見到的第一個令我非常欣賞的人就是這位姐姐,她知性,美麗,穿著得體入時,雖然鼻子上架一副近視鏡,...
    一覽巍巍閱讀 246評論 0 0
  • 新年第一天,大雨表現(xiàn)優(yōu)良。全家人滿足了大雨所有的合理和不合理的要求。 大雨今天獲得了一個稱號,媽媽的小蜜糖
    大雨不愁閱讀 149評論 0 0

友情鏈接更多精彩內(nèi)容