在OSX中使用Delphi FMX时,焦点环效果丢失

时间:2015-05-18 02:06:31

标签: macos delphi firemonkey

我正在使用以下代码将原生NSTextField添加到OSX中的Delphi FMX表单中。文本字段已添加并且运行良好,除了系统默认焦点环效果(当用户选择它时文本字段外的蓝色边框)丢失。 (使用XE8和OSX10.9,10.10测试)。

enter image description here

我猜这是由于Delphi / FMX在OSX下如何实现TForm引起的,因为这个系统的焦点响应效果似乎在控件之外。 Delphi表单可能有一些特殊的设置来“防止”系统错误地绘制这种效果,我尝试了NSTextField的所有相关设置但没有成功。

uses MacApi.AppKit;

procedure TForm1.AddNSTextField;
var
  tf: NSTextField;
  vw: NSView;
  r: NSRect;
begin
  vw := (WindowHandleToPlatform(Form1.Handle)).View;
  if Assigned(vw) then
  begin
    r.origin.x := 10;
    r.origin.y := 30;
    r.size.width := 300;
    r.size.height := 22;
    tf := TNSTextField.Wrap(TNSTextField.Wrap(TNSTextField.OCClass.alloc).initWithFrame(r));
    vi.addSubview(tf);
    //tf.setFocusRingType(0); //Also tried to manually set but no use. 
    tf.setStringValue(NSStr('Untitled'));
  end;
end;

有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:1)

仅注意这一点,所有绘图效果都无法与XE8和Mac OS X 10.10(xcode 6.3)一起正常工作。请告知。