可以通過自動佈局約束來配置3個子視圖的splitview,就像在mail.app中一樣?我的意思是:當用戶調整窗口大小時,只有最右邊的子視圖改變它的大小,當用戶在最左側和中間子視圖之間拖動分隔線時,只有左側和右側子視圖改變其大小,並且當用戶拖動中間和右子視圖只有這些子視圖更改大小。 如果有可能怎麼做。 我認爲這個任務可能會受限制優先執行,但我很困惑。 謝謝!配置NSSplitView有三個子視圖像mail.app
2
A
回答
0
我找到了一個不使用自動佈局約束的解決方案。我正在使用Rubymotion,因此我的解決方案使用Ruby,但可以在Objective-C中輕鬆轉換。
首先,爲了在用戶拖動左側和中間子視圖之間的分隔線時僅獲得左右子視圖的大小,我創建了兩個嵌套的NSSplitView
,第二個嵌入到第一個的右側。
問題中提到的最後一點,也就是說when the user drags the divider between the middle and the right subviews only these subviews change size
是NSSplitView
的默認行爲,因此在此處無所作爲。
最後,得到的只有最右邊的子視圖當用戶調整窗口大小改變它的大小,我實現了splitView:resizeSubviewsWithOldSize:
的委託方法:
def splitView(splitView, resizeSubviewsWithOldSize:oldSize)
sv1 = splitView.subviews[0]
sv2 = splitView.subviews[1]
leftFrame = sv1.frame
rightFrame = sv2.frame
newFrame = splitView.frame
leftFrame.size.height = newFrame.size.height
rightFrame.size.height = newFrame.size.height
leftFrame.origin = NSMakePoint(0,0)
## 1 is the NSSplitView divider width
rightFrame.size.width = newFrame.size.width - leftFrame.size.width - 1
rightFrame.origin.x = leftFrame.size.width + 1
sv1.setFrame(leftFrame)
sv2.setFrame(rightFrame)
end
,瞧! 我花了一段時間才使它工作,所以我希望它能爲其他人節省幾次時間。
0
使用自動佈局,您可以在NSSplitView中設置每個分隔線的保持優先級。 您可以使用委託方法或Xcode中的界面構建器在代碼中執行此操作。
相關問題
- 1. NSSplitView調整大小隻有一個子視圖
- 2. 用Core Animation替換NSSplitView子視圖
- 3. 在NSSplitView設置視圖不工作
- 4. 將NSSplitview的子視圖替換爲自定義視圖
- 5. 當子視圖更改時,在NSSplitView中更改分隔符位置
- 6. 如何指定NSSplitView窗格/子視圖的寬度
- 7. 如何從可可中的NSSplitView中刪除子視圖?
- 8. 如何使用動畫展開和摺疊NSSplitView子視圖?
- 9. UIStackView - 三個佈置子視圖與相對寬度
- 10. NSSplitView子視窗大小以編程方式約束到容器NSSplitView的大小
- 11. 添加子視圖到沒有固定位置的圖像
- 12. 我如何創建一個uiview,看起來像在mail.app中的視圖
- 13. 如何在桌子視圖的每個部分放置圖像?
- 14. 從NSSplitView繼承時,分割視圖除法器沒有顯示
- 15. 配置圖中的Kubernetes圖像配置
- 16. rst2odt沒有顯示第三個圖像
- 17. 使用表格視圖或視圖和三個子視圖或使用標籤
- 18. UIImagePicker設置了多個圖像視圖
- 19. iPad/iPhone上的UITableView像Mail.app
- 20. 使用ffmpeg在現有視頻中放置黑盒子圖像
- 21. jquery圖像滑塊沒有顯示第三個圖像
- 22. 子視圖位置
- 23. 獲取一個NSSplitView
- 24. NSSplitView初始分隔位置?
- 25. 如何水平創建三個圖像視圖
- 26. 三個圖像的css
- 27. 圖像視圖設置圖像資源
- 28. 如何添加UIPanGestureRecognizer僅在圖像視圖數組中的三個圖像?
- 29. 在多個位置放置單個圖像而不創建圖像視圖
- 30. 三維視口到二維圖像
我不確定,但我懷疑它。我的應用程序有3個窗格(包含另一個分割視圖的分割視圖),我必須使用分割視圖委託方法才能控制(即限制)用戶調整大小。 – trojanfoe
好主意。我想過這個問題。但我仍然認爲可以通過佈局約束來實現...... –
鑑於'NSSplitView'正是爲此目的提供了一個委託(除其他外),我認爲你會*反對潮流*。 – trojanfoe