iOS 에서 메뉴 구현하기
iOS 에서 메뉴를 구현하는 방법이 iOS 16 에서 바뀌었습니다.
UITextView
UITextView 는 물론 별도로 설정하지 않아도 선택된 텍스트에 따라 자동으로 메뉴가 작동됩니다.
다음 UITextViewDelegate 함수를 통해 새로운 메뉴를 설정할 수 있습니다.
optional func textView(
_ textView: UITextView,
editMenuForTextIn range: NSRange,
suggestedActions: [UIMenuElement]
) -> UIMenu?
다음과 같이 제안된 action 과 더하여 새로운 메뉴를 만듭니다.
UIEditMenuInteraction
iOS 16 에서 새롭게 UIEditMenuInteraction 이 소개되었습니다.
iOS 16 이전에는 PC 에서 우클릭시에 나오게 되는 Menu 를 만드는 데 제한이 많았었지만, UIEditMenuInteraction
을 통해서 일반적인 UIView 위에 자유롭게 메뉴를 표시할 수 있게 되었습니다.
UIEditMenuInteractionDelegate 를 통해서 메뉴가 표시되는 영역을 변경하거나, 메뉴에 추가되어야 할 action 을 지정할 수 있습니다.
UIMenu.preferredElementsize 로 사이즈를 지정할 수 있습니다.
새로운 옵션으로 keepsMenuPresented 를 제공합니다.
action 이후에 메뉴가 사라지기 않기 때문에 연속적인 action 이 필요할 경우 유용합니다.